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'))
使用常规 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'))