Ember.js 尝试检测任何记录中特定属性的更改
重申问题: 也许最好是展示一下我是如何来到这里的: 我已将数据中的toRender属性与复选框绑定。 该复选框属于FileController SomethingController需要对单击复选框做出响应,以完成其操作 我已经设置了一个场景,FileController可以使用需求和观察者与某个东西控制器进行通信。 当我在复选框上使用操作或在视图中使用单击事件时,我可以将操作发送到FileController以启动操作。 但这两种方法都会阻止toRender属性和复选框的绑定。有了这两种解决方案,我可以选中或取消选中复选框,但数据不会更改。请参阅Ember Inspector。 如何保持绑定并让复选框向SomethingController发送操作 下面是一些尝试,看看我是否可以观察到toRender数据本身——在模板中发生的任何事情之外。也许不是解决办法,但我在抓救命稻草 在这个复杂的问题上,我非常感谢你的帮助。提前谢谢 前任职务: 我正在尝试检测具有toRender属性=true的App.File记录的数量何时发生更改 我想将控制器属性设置为过滤器,然后使用观察。这是不是走错了路?有谁有更好的办法来做这件事吗 由于以下原因,我得到一个未捕获的TypeError:object不是函数错误。ember data.js:7325Ember.js 尝试检测任何记录中特定属性的更改,ember.js,ember-data,Ember.js,Ember Data,重申问题: 也许最好是展示一下我是如何来到这里的: 我已将数据中的toRender属性与复选框绑定。 该复选框属于FileController SomethingController需要对单击复选框做出响应,以完成其操作 我已经设置了一个场景,FileController可以使用需求和观察者与某个东西控制器进行通信。 当我在复选框上使用操作或在视图中使用单击事件时,我可以将操作发送到FileController以启动操作。 但这两种方法都会阻止toRender属性和复选框的绑定。有了这两种解决方
App.File = DS.Model.extend({
name: DS.attr('string'),
toRender: DS.attr('boolean'),
});
App.MyController = Ember.ArrayController.extend({
toRender: null,
init: function () {
this.set('toRender', this.store.filter(App.File, {
toRender: true
}));
},
toRenderChanged: function () {
console.log('toRender has changed!');
}.observes('toRender')
}
因为这是一个Ember.ArrayController,所以您需要使用@each来观察其任何对象上的更改。所以你会改变
toRenderChanged: function () {
console.log('toRender has changed!');
}.observes('toRender')
到
不需要过滤器您在哪一行获得错误?你能帮我做一个拼图吗?这将使我们更容易帮助您了解干扰绑定是否正是我所寻找的余烬bug。这是更新后的JSBin:它简化了很多事情。非常感谢。文件中也有。不知何故,当我更多地关注Ember.observable类描述时,我错过了它:可能值得扩展API描述/示例。
toRenderChanged: function () {
console.log('toRender has changed!');
}.observes('@each.toRender')