Ember.js 作为属性的ember containerView
我想引用containerview作为parentview的属性 例如,在parentView的模板中,我想如下定义containerView:Ember.js 作为属性的ember containerView,ember.js,Ember.js,我想引用containerview作为parentview的属性 例如,在parentView的模板中,我想如下定义containerView: <a {{action toggleForm target="view"}} class="btn btn-primary" href="#">Create</a> {{view view.formContainer}} toggleForm: (e) -> e.stopPropagation()
<a {{action toggleForm target="view"}} class="btn btn-primary" href="#">Create</a>
{{view view.formContainer}}
toggleForm: (e) ->
e.stopPropagation()
@get('formContainer').set('currentView', Em.View.create())
但问题是formContainer属性引用的是类而不是实例
我可以通过以下方式从childViews集合访问它:
formContainer = @get('childViews.firstObject')
但是很明显,如果视图不再是第一个对象,那么我的代码就会中断
我如何在不查看childViews集合的情况下引用实例,或者这样做是可能的?您的思路是正确的。问题是您试图使用
formContainer
属性(显然已设置为视图类)作为对视图实例的引用
如果要从父视图访问视图实例,则需要使用视图辅助对象的viewName属性。有关详细信息,请参阅
<a {{action toggleForm target="view"}} class="btn btn-primary" href="#">Create</a>
{{view view.formContainer viewName="formContainerViewName"}}
顺便说一句,我建议将formContainer属性重命名为formContainer,因为约定的类定义以大写开头
下面是一个工作示例:
toggleForm: (e) ->
e.stopPropagation()
@get('formContainerViewName').set('currentView', Em.View.create())