Ember.使用未绑定选项列表进行选择

Ember.Select with an unbound options list

本文关键字:列表 行选 选择 选项 绑定 Ember      更新时间:2023-09-26

在我正在开发的ember.js应用程序(ember v1.8.0-beta1,ember-cli)中,我有一个带有简单注册类型表单的页面,其中包括一个国家/地区选择下拉列表。问题是,由于该字段具有相对较多的选项(确切地说是244个),因此渲染性能受到很大影响,因此当将该选择字段添加到模板时,渲染路由所需的时间几乎要长整整一秒。

我认为这种放缓是由于Ember必须为select中的244个<option>视图中的每一个创建绑定,所以根据我找到的这个食谱条目,我试图创建Ember.Select的未绑定版本,如下所示:

app/views/unbound-select.js

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

app/templates/unbound-option.hbs

{{unbound view.label}}

app/templates/signup.hbs

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

但是,这样做而不是使用常规的Ember.Select似乎根本无助于提高渲染速度。在我的实现中,是否有遗漏的东西会导致所有的<option>仍然被绑定?

鉴于Ember.Select的未绑定扩展同样缓慢,我敢说Ember.Select只是缓慢。来自文件,最后一段:

选择视图的功能非常丰富,在渲染许多项目时可能会表现不佳。因此,它还没有像其他输入一样转换为组件或辅助对象。