我正在尝试编写一个与 Ember 一起使用的 Select2View。主要困难是Select2从option
元素中复制数据,所以我们必须在每次更改它们时通知它。通过将 OptionView 设为非虚拟,然后childViews.@each.label
在 Select2View 中进行观察,我已经让它大部分工作了。
我注意到当删除this.get('childViews')
在观察者中调用的调试打印时它停止工作。有了这个电话,一切都按预期工作。没有它,即使子视图的标签发生变化,也永远不会调用观察者。这是一个 JSFiddle 演示:http: //jsfiddle.net/sYCaS/6/。
我在这里做错了什么,还是这是一个错误?我希望能够观察我所有子视图的属性,并在它们发生变化时得到通知。
编辑:看起来这种行为是预期的,并在此处描述:http: //emberjs.com/blog/2013/08/29/ember-1-0-rc8.html#toc_unconsumed-computed-properties-do-not-触发观察者。但是,按照建议移动get
toinit
是行不通的。在这种情况下被init
称为早点还是什么?