我正在使用 each
帮助器在 Ember.js View 中创建无序列表。我还有一些在 didInsertElement
Hook 上运行的 Javascript,它选择每个列表项。但是,如果我使用 each
帮助器生成列表,该选择器将无法选择任何元素。关于如何从选择器获取结果有什么想法吗?
相关 View :
<script type="text/x-handlebars" data-template-name="slider">
<ul>
{{#each slide in controller}}
<li><img src="./resource/locations/1/test.jpg"></li>
{{/each}}
</ul>
<br>
</script>
相关JS:
App.SliderView = Ember.View.extend({
templateName: "slider",
didInsertElement: function() {
var self = this;
var items = $(">ul>li", self.$());
//...
}
});
更新:
我相信出现问题是因为我正在加载异步填充 Controller 的模型。有没有办法监听模型首次填充时发生的事件?
我的模型代码:
App.Location = DS.Model.extend({
thenSlider: DS.hasMany("slide", {async: true})
});
App.Slide = DS.Model.extend({
//...
});
最佳答案
对我来说看起来不错,您可能面临一个问题,即在 didInsertElement
触发后填充数据。 didInsertElement
仅在最初插入 Slider
时触发,不一定在插入/修改其中的元素时触发。
http://emberjs.jsbin.com/liluxece/1/edit
由于它是异步的,我会使用 render
并将其连接到另一个 View ,这样您就可以针对每个项目的具体情况使用 didInsertElement
。
{{render 'template' context}}
这是一个例子
关于javascript - JQuery 选择器未选择 EmberJS View 中的列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23621516/