Ember。选择未绑定的选项列表

时间:2014-09-12 18:45:19

标签: javascript data-binding ember.js handlebars.js ember-cli

在我正在处理的ember.js应用程序(ember v1.8.0-beta1,ember-cli)中,我有一个页面,其中包含一个简单的注册类型表单,其中包含一个国家/地区选择下拉列表。问题在于,由于此字段具有相对大量的选项(确切地说是244),因此存在大的渲染性能命中,当将该选择字段添加到模板时,该路径将花费几乎整整一秒的时间来渲染。 / p>

我觉得这种减速是因为Ember必须为select中的244 <option>个视图中的每一个创建绑定,所以在我找到的this cookbook entry之后,我试图创建一个未绑定的版本Ember.Select喜欢这样:

应用程序/视图/未结合-select.js

import Ember from 'ember';

export default Ember.Select.extend({
    optionView: Ember.SelectOption.extend({
        templateName: 'unbound-option'
    })
});

应用程序/模板/未结合-option.hbs

{{unbound view.label}}

应用程序/模板/ signup.hbs

...
{{view "unbound-select" value=country content=countries}}
...

然而,这样做而不是使用常规Ember.Select似乎对渲染速度没有任何帮助。在我的实现中是否有某些东西可能导致所有<option>仍被绑定?

1 个答案:

答案 0 :(得分:0)

看到Ember.Select的未绑定扩展名同样缓慢,我冒昧地认为Ember.Select速度很慢。来自the docs,最后一段:

  

选择视图功能非常丰富,在渲染多个项目时可能会表现不佳。因此,它尚未像其他输入一样转换为组件或帮助器。