JQuery选择器不在EmberJS视图中选择列表项

时间:2014-05-13 01:36:13

标签: javascript jquery ember.js

我正在使用each帮助器在Ember.js视图中创建一个无序列表。我还有一些在didInsertElement钩子上运行的Javascript,它选择每个列表项。但是,如果我使用each帮助程序生成列表,则该选择器无法选择任何元素。关于如何从选择器获得结果的任何想法?

相关观点:

<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.$());

        //...
    }
});

更新

我认为问题出现是因为我正在加载异步填充控制器的模型。有没有办法监听首次填充模型时发生的事件?

我的型号代码:

App.Location = DS.Model.extend({
    thenSlider: DS.hasMany("slide", {async: true})
});

App.Slide = DS.Model.extend({
    //...
});

1 个答案:

答案 0 :(得分:1)

对我来说很好,您可能会遇到didInsertElement触发后数据填充的问题。 didInsertElement仅在最初插入Slider时触发,不一定在插入/修改其中的元素时触发。

http://emberjs.jsbin.com/liluxece/1/edit

由于它是异步的,我会使用render并将其连接到另一个视图,这样您就可以针对每个项目的具体情况使用didInsertElement

{{render 'template' context}}

这是一个例子

http://emberjs.jsbin.com/liluxece/5/edit