余烬控制器设置属性在操作
Ember controller set property in action
余烬新手,这太愚蠢了,但我浪费了一天的时间。
我正在控制器中创建一组对象,用于在视图中构建单选按钮。
单击按钮时,我想切换无线电输入上的单击属性,使其显示为单击。很简单,但余烬不断给我带来错误。
这是我的代码(编辑了一些错别字):
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中将单击设置为true时,我得到"未捕获的错误:断言失败:无法使用假键调用get"。
如果您尝试使用 Em.Object.toggleProperty
,那么您需要Em.Object
. :)有像 Em.get
和 Em.set
这样的函数,您可以将其用于 ember 和非 ember 对象,但没有函数Em.toggleProperty
用于非 ember 对象。
但是,您可以将 Em.set 与 Em.get 一起使用来实现切换行为:
Em.set(item, 'clicked', !Em.get(item, 'clicked'));
附言:从属性本身设置属性依赖是没有意义的。(我说的是radioArray : function () {...}.property('radioArray')
)。
附注:http://emberjs.jsbin.com/memuwi/2/edit?html,js,output
相关文章:
- 从JavaScript访问struts操作中的属性
- javascript对象操作:根据指定条件选择属性
- 更改跳转到URL操作SSRS 2008 R2的链接目标属性(rc:LinkTarget)
- CKEditor-对每个具有类名的属性执行一些操作
- 未捕获类型错误:无法设置未定义的属性“操作”
- 当我在操作属性中写入页面名称时,文件图像不会上传
- 如何使用复选框显示表单的更多选项并更改表单的操作属性
- 在 JavaScript 中创建对象和操作属性
- 如何使用操作属性发送 html 表单数据而不重定向到另一个页面
- 不带 JS 的 JSP 动态表单操作属性
- 将锚标记与表单的操作属性结合使用
- 如何在新页面加载后提交 CFform 并更改其操作属性
- PHP 上传,按操作属性提供动态网址
- 无法动态更改表单操作属性
- 从第一个和更改操作属性填充第二个选择列表
- 提交隐藏了操作属性的表单
- 为什么在原型链上操作属性实际上是在对象上创建它
- 使用js库渐变dom对象时最好的操作属性
- ExtJS操作属性网格源信息
- 使用表单的操作属性的差异