Ember-Data objectAt()获取第一个结果不起作用
Ember-Data objectAt() to get first result does not work
我正在用数据填充两个模板:第一个模板有关于模型的详细信息(称为Slider),第二个模板有最近5个滑块的列表。
问题是,当我对结果使用objectAt(0)时,模型没有正确应用于模板。列表的另一个模板填充。我的意思是:
App.IndexRoute = Ember.Route.extend({
setupController: function() {
var sliders = App.Slider.find({ limit: 5 });
this.controllerFor('indexSlider').set('model', sliders.objectAt(0));
this.controllerFor('indexSliders').set('model', sliders); // this works fine and loads the data into the template
}
});
这段代码不起作用。但是,当我用以下内容替换indexSlider模型时,它确实可以工作:
App.IndexRoute = Ember.Route.extend({
setupController: function() {
var sliders = App.Slider.find({ limit: 5 });
this.controllerFor('indexSlider').set('model', App.Slider.find(52));
this.controllerFor('indexSliders').set('model', sliders);
}
});
…其中52是第一个结果的ID。这让我认为objectAt并没有真正正确地在模板上渲染模型,或者我只是做错了吗?
在尝试访问第一个对象之前,您需要等待find
加载完成。您可以使用didLoad
事件:
App.IndexRoute = Ember.Route.extend({
setupController: function() {
var sliders = App.Slider.find({ limit: 5 });
sliders.one('didLoad', this, function() {
this.controllerFor('indexSlider').set('model', sliders.objectAt(0));
});
this.controllerFor('indexSliders').set('model', sliders);
}
});
相关文章:
- If语句只执行第一个条件并运行其他条件,但没有结果
- 与网络界面相比,谷歌搜索API有时会重复第一个结果,有时会重复第二个结果
- 仅在第一个结果中显示/隐藏MySQL结果函数
- 承诺,如果第一个失败,则返回第二个承诺结果
- 动态创建的元素上的事件侦听器仅对第一个结果起作用
- 为什么在给出第一个结果后仍然调用此方法
- 如何对select2自动完成结果进行排序,只显示以第一个字母开头的项目
- AJAX 实时搜索仅当结果以相同的第一个字母开头时才显示结果
- 如何在集合中的项上触发 jQuery 事件(意外的 jQuery 结果来自 $._data() 与集合的第一个元素)
- jQuery.find() 只返回第一个结果
- 在“ng-repeat”中仅显示第一个和最后一个子项作为结果
- Phantom JS:第一个孩子返回正确结果的时间有一半
- 正则表达式第一个结果($ 1)替换为变量的属性
- 当不隐藏时,只显示sql的第一个结果
- Ember-Data objectAt()获取第一个结果不起作用
- 只能发布while循环的第一个结果
- 谷歌放置自动完成 - 在回车键上选择第一个结果
- jQuery实时搜索-在页面找到所有可用结果后返回到第一个结果
- 将另一个数组插入到for循环中,重复第一个结果
- execMatch只返回第一个结果