Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 尝试检测任何记录中特定属性的更改_Ember.js_Ember Data - Fatal编程技术网

Ember.js 尝试检测任何记录中特定属性的更改

Ember.js 尝试检测任何记录中特定属性的更改,ember.js,ember-data,Ember.js,Ember Data,重申问题: 也许最好是展示一下我是如何来到这里的: 我已将数据中的toRender属性与复选框绑定。 该复选框属于FileController SomethingController需要对单击复选框做出响应,以完成其操作 我已经设置了一个场景,FileController可以使用需求和观察者与某个东西控制器进行通信。 当我在复选框上使用操作或在视图中使用单击事件时,我可以将操作发送到FileController以启动操作。 但这两种方法都会阻止toRender属性和复选框的绑定。有了这两种解决方

重申问题:

也许最好是展示一下我是如何来到这里的:

我已将数据中的toRender属性与复选框绑定。 该复选框属于FileController SomethingController需要对单击复选框做出响应,以完成其操作 我已经设置了一个场景,FileController可以使用需求和观察者与某个东西控制器进行通信。 当我在复选框上使用操作或在视图中使用单击事件时,我可以将操作发送到FileController以启动操作。 但这两种方法都会阻止toRender属性和复选框的绑定。有了这两种解决方案,我可以选中或取消选中复选框,但数据不会更改。请参阅Ember Inspector。 如何保持绑定并让复选框向SomethingController发送操作

下面是一些尝试,看看我是否可以观察到toRender数据本身——在模板中发生的任何事情之外。也许不是解决办法,但我在抓救命稻草

在这个复杂的问题上,我非常感谢你的帮助。提前谢谢

前任职务:

我正在尝试检测具有toRender属性=true的App.File记录的数量何时发生更改

我想将控制器属性设置为过滤器,然后使用观察。这是不是走错了路?有谁有更好的办法来做这件事吗

由于以下原因,我得到一个未捕获的TypeError:object不是函数错误。ember data.js:7325

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')