【发布时间】:2014-08-28 01:08:12
【问题描述】:
不知何故,我的 Ember 应用程序中的复选框最初总是被选中。
...
{{#each model.fields}}
...
{{input type="checkbox" checked=isOptional}}
字段数组是我模型中的一个属性。 fields 数组中的每个对象都有一个名为 isOptional 的属性,可以是“true”或“false”。
出于某种原因,无论 isOptional 的值如何,最初都会选中复选框。
如果我手动选中复选框,isOptional 标志实际上会被更改。所以除了检测初始值之外,绑定是有效的。
非常感谢任何帮助,谢谢!
编辑:正如 cmets 中所讨论的,问题是因为我的模型是由 Ember.$.getJSON() 返回的,它在引号中包含“false”并被解释为 true 值,导致选中了复选框。我通过覆盖布尔值解决了这个问题:
model.fields.forEach(function(field, i) {
Ember.set(field, 'isOptional', (field.isOptional == 'true'));
});
【问题讨论】:
-
您确定 isOptional 属性中没有任何值吗?具有除 false、null 或 undefined 之外的任何值都会导致选中框。
-
谢谢,我认为这可能是问题所在!我使用“Ember.$.getJSON”来获取我的模型,它在引号中返回“false”。有没有简单的方法让 Ember 将其解释为布尔值?
-
我相信这可能很有用 - emberjs.com/api/data/classes/DS.BooleanTransform.html - 但TBH我不使用 Ember.Data 所以可能有比我更好的资源。
-
谢谢。不,我也没有使用 Ember 数据,也许稍后它不再是测试版。
标签: javascript checkbox ember.js