gpt4 book ai didi

javascript - 获得第一个结果的 Ember-Data objectAt() 不起作用

转载 作者:行者123 更新时间:2023-11-29 10:18:31 26 4
gpt4 key购买 nike

我正在用数据填充两个模板:第一个模板包含有关模型(称为 slider )的详细信息,第二个模板包含最后 5 个 slider 的列表。

问题是当我在结果上使用 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);
}
});

关于javascript - 获得第一个结果的 Ember-Data objectAt() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16666229/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com