2

我在 1.0-pre4 中出现了奇怪的行为。我Ember.ContainerView通过{{view Ember.ContainerView viewName="dashboardView"}}. 当我将视图推送到其childViews数组中时,DOM 不会更新。这在pre2中工作。

这是一个jsfiddle。更奇怪的是childViews.length,如果您查看模板的直接输出与 childViewCount 的直接输出,它似乎没有更新......或者更确切地说它没有更新(?!?),它在推送后立即更新两种观点。

更新

下面的答案是正确的,我的 jsfiddle 应该使用过.pushObject,而不是.push()......但我的原始代码实际使用过.pushObject。相反,它看起来像 Firefox 10 中的错误,请参阅答案评论。

更新 2

与主人确认,提交问题 #1952

4

1 回答 1

4

您需要确保您使用的是 EmberJS 等效项,以便您的绑定工作。在您使用的示例中push,它的行为与 几乎完全相同pushObject,但pushObject符合 KVO(键值观察/绑定),因此 Ember 可以做它的事情。

我已经更新了您的 JSFiddle 以反映这一点,它再次为您工作:http: //jsfiddle.net/RCLd7/8/但我所做的只是更改pushpushObject两个地方。如果我们要使用,push那么 Ember 将需要引入轮询,它没有,以发现更改,而不是通过pushObject.

本机 JavaScript 方法与 Ember 等效方法的其他一些示例:

  • 本机: push, vs. Ember:pushObject
  • 本机: pop, vs. Ember:popObject
  • 本机: unshift, vs. Ember:unshiftObject
于 2013-01-29T16:50:09.030 回答