ember 中模型中每个项目的 ArrayController 属性
ArrayController's property for each item in the model in ember
我有一个数组控制器,它有 属性 "isChecked"(布尔值 属性)。在我的控制器中,我想获取 "checked" 的元素集合(我的意思是 selected)。我不确定如何在模型中访问控制器的 属性。
我的控制器如下:
App.ExampleController = Ember.ArrayController.extend({
isChecked: false,
totalElements: function()
{
return this.model.get('length');
}.property('@each'),
selectedElements: function()
{
var content = this.get('content');
console.log(content.filterBy('isChecked'));
return content.filterBy('isChecked');
}.property('isChecked'),
});
我将 "isChecked" 属性 链接到每个助手内部的复选框,如下所示..
<ul>
{{#each model}}
<li>
{{input type="checkbox" checked=isChecked}}
{{name}}
</li>
{{/each}}
</ul>
我将显示模型中的所有项目,并带有与之关联的复选框。用户可以从中 select 几项。所以我想要那些东西。
现在我想获取 "checked" 的元素列表。作为计算 属性 或在任何操作下。
谢谢。
我认为您需要将 isChecked
属性 移到 ObjectController
上,然后使用 itemController
属性 在阵列控制器中引用该控制器.
阵列控制器:
App.IndexController = Ember.ArrayController.extend({
itemController: 'color',
totalElements: function() {
return this.get('length');
}.property('[]'),
selectedElements: Ember.computed.filterBy('@this', 'isChecked', true)
});
(@this
表示计算的 属性 将引用项目控制器数组。)
物品控制器:
App.ColorController = Ember.ObjectController.extend({
isChecked: false
});
http://emberjs.jsbin.com/tazojejuwi/1/edit
希望对您有所帮助。
我有一个数组控制器,它有 属性 "isChecked"(布尔值 属性)。在我的控制器中,我想获取 "checked" 的元素集合(我的意思是 selected)。我不确定如何在模型中访问控制器的 属性。
我的控制器如下:
App.ExampleController = Ember.ArrayController.extend({
isChecked: false,
totalElements: function()
{
return this.model.get('length');
}.property('@each'),
selectedElements: function()
{
var content = this.get('content');
console.log(content.filterBy('isChecked'));
return content.filterBy('isChecked');
}.property('isChecked'),
});
我将 "isChecked" 属性 链接到每个助手内部的复选框,如下所示..
<ul>
{{#each model}}
<li>
{{input type="checkbox" checked=isChecked}}
{{name}}
</li>
{{/each}}
</ul>
我将显示模型中的所有项目,并带有与之关联的复选框。用户可以从中 select 几项。所以我想要那些东西。
现在我想获取 "checked" 的元素列表。作为计算 属性 或在任何操作下。
谢谢。
我认为您需要将 isChecked
属性 移到 ObjectController
上,然后使用 itemController
属性 在阵列控制器中引用该控制器.
阵列控制器:
App.IndexController = Ember.ArrayController.extend({
itemController: 'color',
totalElements: function() {
return this.get('length');
}.property('[]'),
selectedElements: Ember.computed.filterBy('@this', 'isChecked', true)
});
(@this
表示计算的 属性 将引用项目控制器数组。)
物品控制器:
App.ColorController = Ember.ObjectController.extend({
isChecked: false
});
http://emberjs.jsbin.com/tazojejuwi/1/edit
希望对您有所帮助。