我正在尝试使用Ember.View
实施Bootstrap Collapse(本节末尾的简单可折叠)
我找不到绑定视图id的方法,
collapse.handlebars
<button type="button" class="btn btn-danger" data-toggle="collapse" {{bindAttr data-target="view.contentId"}}>
simple collapsible
</button>
{{view view.collapseContentView class="collapse in"}}
我的观点:
App.CollapseView = Ember.View.extend({
templateName: 'collapse',
collapseContentView: Ember.View.extend({
template: Ember.Handlebars.compile("Collapse body text")
}),
contentId: function(){
return "#"+this.get('collapseContentView.elementId')
}.property()
})
我不想手动设置id而是想使用ember生成的一个,这有什么理由不起作用?
答案 0 :(得分:1)
collapseContentView
是一个视图类(extend
),在您实例化它之前不会有elementId
(create
)。
在您的模板中,当你{{view view.collapseContentView}}
创建一个新的视图实例,但它不会更改view.collapseContentView
的值时,它仍然是一个类,因此{{ 1}}没有意义。
我建议使用Ember.ContainerView,这是以编程方式控制视图的好方法。以下是使用容器视图处理两个视图http://www.emberplay.com#/workspace/1140286638之间的事件的示例。