javascript - Ember.Select 带有未绑定(bind)的选项列表

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

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

我认为这种速度减慢是由于 Ember 必须为 244 <option> 中的每一个创建绑定(bind)。选择内的 View ,因此以下 this cookbook entry我发现,我尝试创建 Ember.Select 的未绑定(bind)版本像这样:

app/views/unbound-select.js

import Ember from 'ember';

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

应用程序/模板/unbound-option.hbs

{{unbound view.label}}

应用程序/模板/signup.hbs

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

但是,这样做而不是使用常规 Ember.Select似乎对渲染速度没有任何帮助。我的实现中是否缺少某些东西会导致所有 <option>仍受约束吗?

最佳答案

鉴于 Ember.Select 的未绑定(bind)扩展也同样慢,我敢说 Ember.Select 确实很慢。来自 the docs ,最后一段:

The select view is extremely feature-rich, and may perform badly when rendering many items. Due to this, it has not yet been converted into an component or helper like other inputs.

关于javascript - Ember.Select 带有未绑定(bind)的选项列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25814796/

相关文章:

c# - BindingSource 上的 EndEdit 更新 DataTable,但 rowstate 仍未改变

javascript - 如何在 ember + jasmine 中模拟路由器状态

javascript - JavaScript >> 代表什么?

javascript - jQuery .animate 动画 div 但不是里面的图像

javascript - Android发送短信onload JS

Ember.js 路由 - 有条件地阻止路由/状态更改

javascript - 如何使用绑定(bind)助手创建面向外部的 URL?

javascript - 使用 jQuery 从 td 单元格获取文本

wpf - 尽管属性值正在更新,但在数据绑定(bind)属性的设置 block 中没有命中断点(和额外代码)

java - 将activity_main.xml转换为数据绑定(bind)布局时出现 "androidx.*...*.ConstraintLayout"is not allowed怎么解决?