小编Pet*_*net的帖子

用ember选择下拉列表

我正在尝试生成一个选择输入并将所选对象传递给视图上的change事件.ember联系人示例使用a <ul>但是选择视图需要在每个视图之外,否则甚至不会触发更改.

这是js的视图:

App.SelectView = Ember.View.extend({

    change: function(e) {
        //event for select
        var content = this.get('content');
        console.log(content);   

        App.selectedWidgetController.set('content', [content]);
    },
    click: function(e) {
        //event for ul
        var content = this.get('content');
        console.log(content);   

        App.selectedWidgetController.set('content', [content]);
    }
});
Run Code Online (Sandbox Code Playgroud)

ul从示例工作:

<ul>
    {{#each App.widgetController.content}}
        {{#view App.SelectView contentBinding="this"}}
            <li>{{content.name}}</li>
        {{/view}}
    {{/each}}
</ul>
Run Code Online (Sandbox Code Playgroud)

但是,如果我直接替换html,则不会触发更改事件(这是有道理的)

<select>
    {{#each App.widgetController.content}}
        {{#view App.SelectView contentBinding="this"}}
            <option>{{content.name}}</option>
        {{/view}}
    {{/each}}
</select>
Run Code Online (Sandbox Code Playgroud)

所以我想select必须包含在视图中..在这种情况下我如何传递相关对象?...这段代码导致整个数组被传递:

{{#view App.select_view contentBinding="App.widgetController.content"}}
    <select>
    {{#each App.widgetController.content}}
        <option>{{name}}</option>
    {{/each}}
    </select>
{{/view}}
Run Code Online (Sandbox Code Playgroud)

ember.js

19
推荐指数
1
解决办法
2万
查看次数

使用Ember和Ember数据:如何在存储加载完成后和/或关联视图完成重新渲染时设置回调?

我正在使用Ember和Ember数据从REST API加载几百个对象,使用自定义适配器中的findAll调用.我有一个引用findAll的ArrayController.content,然后使用最近添加的Ember.Select在select小部件/下拉菜单中显示对象.一旦完全呈现所有对象(每个对象都是select的选项),我需要在select小部件上运行一个函数 - 特别是Chosen.js库.

因为处理select中的几百个对象需要一些时间(2-4秒),所以在事件Ember.Select.didInsertElement和Ember.ArrayController.contentDidChange上使用回调不太有用; 他们都很快开火.那么是否可以使用另一种事件或另一种方法呢?

ember.js ember-data

5
推荐指数
1
解决办法
2342
查看次数

标签 统计

ember.js ×2

ember-data ×1