使用常规JS / AJAX很容易做到,但我正在尝试学习并按照Ember方式(v2.6)进行操作:
我有一个网址/dates
,在此页面上有两个日历。在页面加载时,向服务器发出请求以获取在日历1中预先选择的日期。响应看起来很好,但日期没有出现在模板中。
/templates/dates.hbs:
Preselect: [{{model.preselect}}] //this is outputting: Preselect: []
/routes/dates.js:
import Ember from 'ember';
export default Ember.Route.extend({
model(){
return this.get('store').findAll('my-date').get('firstObject');
}
});
/models/my-date.js:
import Model from 'ember-data/model';
import attr from 'ember-data/attr';
export default Model.extend({
preselect: attr()
});
服务器响应:
{"myDates":{"id":1,"preselect":"2016-10-02"}}
稍后会有更多日历2的请求,但我被困在日历1上。
为什么模型数据没有出现在页面上? ember检查员没有错误。该模型确实出现在具有适当数据的ember检查器中。
谢谢。
答案 0 :(得分:1)
findAll
将返回承诺。所以你不能直接处理它,你应该使用then
来处理结果。
以下应该有效。
this.get('store').findAll('my-date').then((result) => result.get('firstObject'))