如果传递模型,属于渲染助手的控制器将被重置

时间:2014-05-19 19:23:17

标签: javascript ember.js

我注意到Ember的一种行为对我没有任何意义。我不确定这是一个错误或功能。在后一种情况下,我真的很感兴趣为什么这是一个理想的行为。所以我们走了:

  1. 确保您可以看到您的浏览器控制台输出。
  2. 打开example project on JS Bin。请注意来自IndexControllerFoobarController的两条初始消息。
  3. 点击“添加一个”按钮。这样做是为了FoobarController上有一些状态。
  4. 点击“转到hello”链接转换到“hello route”
  5. 通过链接返回索引
  6. count变量仍然具有该值。一切都好!
  7. 现在有一个tiny change in the next JS Bin。我将模型传递给渲染助手。 再次按照上述步骤操作。在第5步之后,您会看到计数现在为0,并且'init FoobarController'再次出现。

    在传递模型时,某种程度上属于渲染助手的控制器会被重置。我找不到有关为什么会发生这种情况的任何信息,或者想出任何有理由这样做的原因。

1 个答案:

答案 0 :(得分:1)

<强> From the Docs

  

如果指定了模型属性路径,则将创建控制器的新实例,并且可以多次使用{{render}}同名。

传递第二个参数重新实例化FoobarController,它基本上将计数重置为0,而不传递模型参数会创建FoobarController的单例实例。