gpt4 book ai didi

ember.js - 从 Ember Data 返回 promise 时出错

转载 作者:行者123 更新时间:2023-12-04 20:37:50 26 4
gpt4 key购买 nike

我正在开发我的第一个 Ember 应用程序,并让它以我想要的方式显示,路由返回来自 model() 的静态 JSON 对象。 :

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/

我能够以这种方式做我想做的一切,如果我想把它变成一个生产应用程序,我就更接近了。

最佳答案

所以问题是你实际上并没有遵守 JSON API规范。您可以通过在 how to conform 上阅读 Mirage 的页面来解决此问题。 .

本质上,在 GET /foo/1 的情况下,您需要在 JSON 响应的顶层返回一个对象。称呼。您还需要将 GET /foo 的“元素”属性更改为“数据”。这应该可以解决问题。现在还没有一种简单、可重复使用的方法来开箱即用地执行此 Mirage。目前解决这两个问题的最佳选择是使用此 issue 中提供的解决方案。 .

关于ember.js - 从 Ember Data 返回 promise 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32241632/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com