我在1.0-pre4中遇到了奇怪的行为。我通过Ember.ContainerView
向我的模板添加了{{view Ember.ContainerView viewName="dashboardView"}}
。当我将视图推入其childViews
数组时,DOM不会更新。这是在pre2。
这是一个jsfiddle。更奇怪的是,如果你看一下模板与childViewCount的直接输出,似乎childViews.length
不会更新......或者更确切地说它不会更新(?!?)推送两个视图后立即更新。
下面的答案是正确的,我的jsfiddle应该使用.pushObject
,而不是.push()
...但我的原始代码实际上使用了.pushObject
。相反,它看起来像是Firefox 10中的一个错误,请参阅答案评论。
向主人证实,提交了issue #1952。
答案 0 :(得分:4)
您需要确保使用EmberJS等效项,以便绑定工作。在您的示例中,您使用了push
,其行为与pushObject
几乎完全相同,但pushObject
符合KVO(键值观察/绑定),因此Ember可以做到这一点
我已经更新了你的JSFiddle,以反映这一点,并且它再次为你工作:http://jsfiddle.net/RCLd7/8/但我改变的是在两个地方将push
更改为pushObject
。如果我们要使用push
,那么Ember需要引入轮询,它不,发现更改,而不是{{}自动通知1}}。
本机JavaScript方法与Ember等效方法的其他一些示例:
pushObject
,与Ember:push
pushObject
,与Ember:pop
popObject
,与Ember:unshift