0

我正在尝试观察我的视图控制器的内容。视图的控制器通过 contentBinding 绑定(单向)到另一个控制器的内容。我试图在内容更改时执行“facContent”。不工作。可能是PEBCAK。任何帮助表示赞赏。

/*________VIEW OBSERVING CONTROLLER CONTENT___________*/
App.GeoView = Ember.View.extend({
facsContent: function() {
    //do something
}.observes('controller.content'),
});

/*_________CONTROLLER WHO IS BEING OBSERVED BY GEOVIEW / HAS CONTENT BINDING TO ANOTHER CONTROLLER__*/
App.GeoController = Ember.ObjectController.extend({
     content:[],
     contentBinding:('controllers.geoFacs'),
});

/*___________CONTROLLER WHOSE CONTENT CHANGES_____________*/
App.GeoFacsController = Ember.ArrayController.extend({
content:[]
});
4

1 回答 1

2

我想问题是,如果有一个全新的内容数组分配给您的GeoFacsController. 我猜你想在每次从数组中添加或删除新项目时触发它。然后你必须使用@each数组的符号:

App.GeoView = Ember.View.extend({
facsContent: function() {
    //do something
}.observes('controller.content.@each'),
});

写完之后,我发现你的代码有一个小错误。您的 GeoController 必须指定它想借助该needs属性访问 GeoFacsController。但也许这只是你的例子中的一个错字:-)

App.GeoController = Ember.ObjectController.extend({
     needs : ["geoFacs"],
     content:[],
     contentBinding:('controllers.geoFacs'),
});
于 2013-08-09T07:54:15.843 回答