0

ビューIDをバインドする方法が見つからない、collapse.handlebarsを使用してBootstrap Collapse(セクションの最後にある単純なCollapsible )を実装しようとしていますEmber.View

<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 を使用したいのですが、これが機能しない理由は何ですか?

4

1 に答える 1

1

collapseContentViewビュークラス( )であり、インスタンス化するまで( extend)はありません。elementIdcreate

テンプレートでこれを行う{{view view.collapseContentView}}と、ビューの新しいインスタンスが作成されますが、の値は変更されないview.collapseContentViewため、クラスのままであるview.collapseContentView.elementIdため、意味がありません。

プログラムでビューを制御するための優れた方法であるEmber.ContainerViewを使用することをお勧めします。コンテナビューを使用して2つのビュー間のイベントを処理する例を次に示しますhttp://www.emberplay.com#/workspace/1140286638

于 2012-11-27T15:39:13.970 に答える