配置 Ember CLI 以使用 http-mock
Configure Ember CLI to use http-mock
设置:
ember new shop
cd shop
ember install:addon ember-cli-scaffold
ember generate scaffold product name:string available:boolean
ember generate adapter product
我想使用 http-mock,但 http://www.ember-cli.com/#ember-data 告诉我这样做:
ember g http-mock products
之后我使用这段代码生成了两个示例产品:
server/mocks/products.js
module.exports = function(app) {
var express = require('express');
var productsRouter = express.Router();
productsRouter.get('/', function(req, res) {
res.send({
'products': [
{
id: "1",
name: 'Orange',
available: true
}, {
id: "2",
name: 'Apple',
available: false
}
]
});
});
[...]
当我使用命令 ember server
并浏览到 http://localhost:4200/products 时,我什么也没看到。
我错过了什么?我还必须启动或配置什么?
wadeo:@wintermeyer 你试过了吗http://localhost:4200/api/products
要让这个东西飞起来,必须按如下方式更改适配器。
app/adapters/product.js
import DS from 'ember-data';
export default DS.RESTAdapter.extend({
'namespace': 'api'
});
您必须做两件事...您需要为每个将使用此 api 的页面更改路由,并调用页面模板中的数据源.假设您有一个名为产品的页面,您需要更改您的路线....
// routes/products.js
import Ember from 'ember';
export default Ember.Route.extend({
model:function() {
return this.store.findAll('product');
}
});
同时更改您的模板:
// products.hbs
{{#each products in model}}
<li > {{proudct._id}} - {{#link-to 'product' product}}Details{{/link-to}}</li>{{/each}}
设置:
ember new shop
cd shop
ember install:addon ember-cli-scaffold
ember generate scaffold product name:string available:boolean
ember generate adapter product
我想使用 http-mock,但 http://www.ember-cli.com/#ember-data 告诉我这样做:
ember g http-mock products
之后我使用这段代码生成了两个示例产品:
server/mocks/products.js
module.exports = function(app) {
var express = require('express');
var productsRouter = express.Router();
productsRouter.get('/', function(req, res) {
res.send({
'products': [
{
id: "1",
name: 'Orange',
available: true
}, {
id: "2",
name: 'Apple',
available: false
}
]
});
});
[...]
当我使用命令 ember server
并浏览到 http://localhost:4200/products 时,我什么也没看到。
我错过了什么?我还必须启动或配置什么?
wadeo:@wintermeyer 你试过了吗http://localhost:4200/api/products
要让这个东西飞起来,必须按如下方式更改适配器。
app/adapters/product.js
import DS from 'ember-data';
export default DS.RESTAdapter.extend({
'namespace': 'api'
});
您必须做两件事...您需要为每个将使用此 api 的页面更改路由,并调用页面模板中的数据源.假设您有一个名为产品的页面,您需要更改您的路线....
// routes/products.js
import Ember from 'ember';
export default Ember.Route.extend({
model:function() {
return this.store.findAll('product');
}
});
同时更改您的模板:
// products.hbs
{{#each products in model}}
<li > {{proudct._id}} - {{#link-to 'product' product}}Details{{/link-to}}</li>{{/each}}