我在检测嵌套控制器中的属性更改时遇到了麻烦。
这是我的简化代码:
ActionCardController
ActionCardController = Ember.ObjectController.extend ActivatableHandles,
needs: ['actionCards', 'handle-connector']
HandleConnectorController
HandleConnectorController = Ember.ObjectController.extend
content: {}
testProperty: (->
@get('somePropertyThatChanges')
).property('someOtherProperty')
ActionCard模板
<div ...
...
...
...
{{render 'handle-connector' this}}
...
{{controllers.handle-connector.testProperty}}
</div>
如图所示,我有一个嵌套的&#34;手柄连接器&#34;控制器(具有多个属性),具有自己的视图和模板,需要在ActionCard模板内呈现。在handle-connector上下文中,一切都呈现并表现良好,但我似乎无法访问父控制器中的testProperty(这是嵌套句柄控制器上的计算属性)。我只能访问初始属性值,但一旦在嵌套控制器中更改它,它就不会在父控制器(ActionCard)中刷新。
如果我没有在渲染助手中指定模型,只需调用:
{{render 'handle-connector'}}
...然后该属性也会在父控制器中刷新,这种方法可以正常工作。但是当我渲染多个ActionCard时,我得到错误&#34; 你只能使用{{render}}帮助器一次而不使用模型对象作为其第二个参数&#34; 。处理这种情况的正确方法是什么?
答案 0 :(得分:2)
needs
访问控制器的单例实例,而带模型的render
为正在注入的特定模板创建控制器的唯一实例。
您可以使用子控制器中的this.parentController
从渲染的控制器访问父控制器,从而为您提供从子级到父级的通信方式。