Ember.js复选框绑定初始值设置不正确

时间:2014-07-07 14:04:01

标签: javascript checkbox ember.js

我的Ember应用程序中的复选框总是最初被检查。

...
{{#each model.fields}}
...
  {{input type="checkbox" checked=isOptional}}

fields数组是我模型中的一个属性。 fields数组中的每个对象都有一个名为isOptional的属性,该属性可以是" true"或"假"。

出于某种原因,无论isOptional的值如何,最初都会选中该复选框。

如果我手动选中该复选框,则实际上会更改isOptional标志。所以绑定工作除了检测初始值。

非常感谢任何帮助,谢谢!


编辑:正如评论中所讨论的,问题是因为我的模型是由Ember.$.getJSON()返回的,其中有" false"在引号中并被解释为真值,导致选中复选框。我通过覆盖布尔值来解决这个问题:

model.fields.forEach(function(field, i) {
  Ember.set(field, 'isOptional', (field.isOptional == 'true'));
});

1 个答案:

答案 0 :(得分:0)

你可以摆弄的一个jsbin例子 http://emberjs.jsbin.com/kukokiti/1/

如果您可以提供自己的jsbin,我们可以提供更多帮助。

编辑:你可以在字符串值中看到' false'的效果。

最简单的方法可能是在您正在使用的模型上定义计算属性。