这可能吗?我知道我能做到:
this.store.find('model', 1)
但那不是我想要的。我想以这种格式检索json :(如果我在这样的路径中检索它,则工作):
App.OptionsRoute = Ember.Route.extend({
model: function () {
return {
"options":{
"id": "1",
"headline": "A Headline",
"results": [
{
"id": "1",
"title": 'Option 1',
},
{
"id": "2",
"title": "Option 2"
}
]
}
};
}
});
期权模型:
App.Options = DS.Model.extend({
headline: DS.attr(),
results: DS.attr()
});
options.hbs
<h5>{{options.headline}}</h5>
{{#each item in options.results}}
<h5>{{item.title}}</h5>
{{/each}}
我正在使用RESTAdapter。这是唯一将在该路线上检索的模型。我希望能够使用ember-data,但store.find需要一个数组。
答案 0 :(得分:1)
你在这里错过了一点。首先,您使用错误的格式进行回复。您需要自定义序列化程序。您也可以使用这样一些更脏的解决方法(但它可以工作)。路线:
App.OptionsRoute = Ember.Route.extend({
model: function() {
that = this;
return new Promise(function (resolve, reject) {
url = that.store.adapterFor('option').buildURL('option');
Ember.$.getJSON(url).then(function (json) {
body = json.options;
correct = {
options: [
body
]
};
that.store.pushPayload('option', correct);
resolve(that.store.all('option').get('firstObject'));
});
});
}
});
模板:
<h5>{{model.headline}}</h5>
{{#each item in model.results}}
<h5>{{item.title}}</h5>
{{/each}}
申请表输出:
A Headline
Option 1
Option 2
Working demo - 请注意我使用$.mockjax
从服务器重新创建您的回复,但它与您提供的格式相符。