0

我正在尝试在单个车把模板中呈现 containerView 的多个实例。

http://jsfiddle.net/skane/bZFB3/4/

<script type='text/x-handlebars'>
  {{ view "App.MyContainerView" }}
</script>

只要我不添加引用同一视图的其他 {{ view }} 标签,上面的代码就可以正常工作。我不明白为什么......我附上了一个完整的小提琴来证明这个问题。(检查控制台以查看引发的错误)。

抛出的错误是“您所做的某事导致视图在呈现后但在插入 DOM 之前重新呈现”。

任何帮助/澄清将不胜感激!

史蒂夫

4

1 回答 1

4

问题是您在容器视图定义中创建()子视图,因此相同的子视图实例被(或试图)插入两次,一个用于容器视图的每个实例。将这些 create() 更改为 extend() 就可以了。

作为 extend() 块的一部分设置的属性位于原型上,因此它们在实例之间共享。在容器视图的情况下,如果容器视图在它期望找到子视图的位置找到一个类,则容器视图将实例化一个类,因此拥有该子视图的自己的实例,但如果原型上已经存在实例,它将尝试使用它,并且由于 containerview 的另一个实例认为它拥有该子视图实例并且已经插入它而崩溃。

于 2013-02-26T20:53:35.593 回答