我正在开发我的第一个 Ember 应用程序,并让它显示我想要的方式,路由从以下位置返回静态 JSON 对象model()
:
element: {
name: "First Element",
divisions: [{
name: "First Division",
sets: [{name: "Set 1"},{name: "Set 2"},{name: "Set 3"}]
}, {
name: "Second Division",
sets: [{name: "Set 1"},{name: "Set 2"},{name: "Set 3"}]
}]
}
现在我正在尝试重构以使用 Ember Data + Mirage 并且度过了一段糟糕的时光。
这是我的index.js
路线
export default Ember.Route.extend({
model() {
return this.store.find('element', 1);
},
如果我这样设置 Mirage config.js
:
this.get('/elements', function() {
return {
elements: [
{
id: 1,
name: 'First Element',
divisions: [1, 2]
}
]
}
});
然后我得到这个错误:
Your Ember app tried to GET '/elements/1', but there was no route defined to handle this request.
如果我这样设置 Mirage config.js
:
this.get('/elements/1', function() {
return {
id: 1,
name: 'First Element',
divisions: [1, 2]
}
});
然后我得到这个错误:
22:46:40.883 "Error while processing route: index" "Assertion Failed: normalizeResponse must return a valid JSON API document:
* One or more of the following keys must be present: "data", "errors", "meta"." "EmberError@http://localhost:4200/assets/vendor.js:25582:15
编辑:
所以这不是解决问题的方法,但它让我克服了这个问题。我放弃了 Pretender 并根据这个优秀的教程重新开始创建一个实际的 Rails 服务器:http: //emberigniter.com/modern-bridge-ember-and-rails-5-with-json-api/
我能够以这种方式做我想做的一切,如果我想让它成为一个生产应用程序,我离得更近了。