Ember model/route/template 设置

Ember model/route/template setup

使用常规 JS/AJAX 很容易做到这一点,但我正在尝试学习 Ember 方式 (v2.6) 并做到这一点:

我有一个 URL /dates 并且在这个页面上有两个日历。在页面加载时,向服务器发出请求以获取在日历 1 中预 select 的日期。响应看起来不错,但日期未出现在模板中。

/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 检查器中。

谢谢。

findAll 会return 答应。所以你不能直接处理它,你应该使用then来处理结果。

以下应该有效。

this.get('store').findAll('my-date').then((result) => result.get('firstObject'))