永远不会调用Ember Controller Model钩子

时间:2013-11-26 03:53:36

标签: javascript ember.js

使用{{render "modelHandler" model}}时,永远不会调用相应控制器的model函数。

转载于此:http://jsbin.com/EVoXAceP/3/edit

我90%确定这是一个错误。在我发布到github之前,我发布了这个,以防有一些明显我错过了或者#34;我做错了。"在任何一种情况下,如果你能指出我正确的方向。

用例(为什么我首先需要这个工作)。

我使用{{render}}包含一个AddressAdd模板,我需要扩展模型以包含状态列表以及默认状态。虽然我可以将状态加载到父模型(例如属性或联系人卡片)上,但由于许多视图包含AddressAdd,因此我希望避免每次都手动添加下拉信息。

因此,除了{{render}}和控制器的模型钩子之外,如果你碰巧知道更好的方法,请告诉我!

2 个答案:

答案 0 :(得分:1)

这不是一个错误,只有当您访问与该路由关联的URL时才会触发模型挂钩,并且它仍然存在于路由上,而不是控制器上。另外,如果您的控制器上有一个模型,它应该是一个ObjectController(除非它是一个数组,然后它是一个ArrayController)。

http://jsbin.com/EVoXAceP/13/edit

当你调用渲染时,你说你想要使用特定的上下文渲染特定的模板。

我会在你所在的路线下创建一条路线,并使用没有模型的链接,这将导致模型钩子被触发。

答案 1 :(得分:1)

在您的申请模板中

{{ render 'foo' bar }}

你应该在ApplicationController中有bar属性吗?

App.ApplicationController = Ember.Controller.extend({
  bar: {isBar: 'yup'}
});