Bind ember generated elementId, Ember+Bootstrap Collapse



我正在尝试使用Ember.View实现引导折叠(本节末尾的简单可折叠)我找不到绑定视图 ID 的方法,

折叠车把

<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,而是想使用余烬生成的id,这不起作用的任何原因?

collapseContentView是一个

视图类(extend),在你实例化它之前不会有elementIdcreate)。

在您的模板中,当您执行{{view view.collapseContentView}}时,这将创建视图的新实例,但它不会更改 view.collapseContentView 的值,它仍然是一个类,因此view.collapseContentView.elementId没有意义。

我建议使用 Ember.ContainerView,这是以编程方式控制视图的好方法。下面是使用容器视图处理两个视图之间的事件的示例 http://www.emberplay.com#/workspace/1140286638。

最新更新