【发布时间】:2015-01-14 20:52:57
【问题描述】:
ember 新手,这太愚蠢了,但我已经浪费了一天的时间。
我正在我的控制器中创建一个对象数组,用于在我的视图中构建单选按钮。
单击按钮时,我想切换单选输入上的 clicked 属性,使其显示为已单击。非常简单,但 Ember 不断向我抛出错误。
这是我的代码(编辑了一些错别字):
IndexController = Ember.ObjectController.extend({
radioArray : function () {
var a = [], i = 0;
while (a.push({ index: i++, clicked: false }), i <= 10);
return a;
}.property('radioArray'),
actions : {
assignClick : function (item, index) {
this.toggleProperty(item.clicked);
// some unrelated business logic here
}
}
});
这与:
{{#each radioArray}}
<label {{action "assignClick" this index}}>
<input type="radio" {{bind-attr value=index checked=clicked}} /> foo
</label>
{{/each}}
我只想显示正确的单选按钮已被点击。但是当我尝试在我的 ctrl 中将 clicked 设置为 true 时,我得到“未捕获的错误:断言失败:无法使用假键调用 get。”
【问题讨论】:
-
toggleProperty是做什么的?似乎您在这里缺少一个概念;radioArray直接映射到一组对象,但这些对象没有连接到任何东西。 -
博格。我的意思是 this.toggleProperty(item.clicked)。试图从咖啡脚本翻译。那么这个数组应该是我模型上的属性还是什么?
标签: javascript dom ember.js handlebars.js