我正在使用Array控制器存储一些项目数组。
每个项目都有 isChecked (设置为true或false)和值。
My Array控制器看起来像
Application.PlatformsController = Ember.ArrayController.extend({
contentPropertyFirst: function () {
return true;
}.property("content.@each.isChecked"),
contentPropertySecond: function () {
return true;
}.property("content.@each"),
contentPropertyThird: function () {
return true;
}.property("content"),
contentObserver: function () {
return true;
}.observes("content"),
init: function () {
this.setData();
},
setData: function () {
Appication.Services.fetch('Data') //returns data from my service.
.done(function (data) {
this.get('content').clear();
$.each(data, function (index, item) {
this.get('content').pushObject(item);
this.get('content')[index].isChecked = true;
});
})
.fail(function () {
alert('Error');
});
}
在另一个控制器中,我将其中一个属性设置为上述控制器
Application.EditPlatformsController = Application.UI.Controller.extend({
start: function () {
this.set('listController',Application.PlatformsController.create());
},
在我看来,我将复选框w.r.t渲染到listController中可用的数组项列表。
{{#each listController}}
{{view CoreCheckbox checkedBinding="isChecked"}} {{ value }}
{{/each }}
在上面的例子中,只有在将项目推送到内容时才会调用contentObserver方法。
我想对检查和取消选中 复选框的操作执行某些操作。
请协助我这样做。
答案 0 :(得分:0)
计算属性在调用时会动态更新。如果您希望观察者触发更改,请将“property”更改为“observes”
contentPropertyFirst: function () {
return true;
}.observes("content.@each.isChecked"),
contentPropertySecond: function () {
return true;
}.observes("content.@each"),
contentPropertyThird: function () {
return true;
}.observes("content"),
contentObserver: function () {
return true;
}.observes("content"),