0

こんにちは、私の小さな残り火アプリケーションに属する小さな質問があります。 JSFiddleのアップロードはこちらです。チケットを視覚化するためにブートストラップアコーディオンを使用しました。「クリック」をクリックすると、ビューに別のアコーディオンが追加されます。しかし悲しいことに、それを開いたり使用したりすることはできません。動的に作成したすべてのアコーディオンを開いたり閉じたりすることはできません。エラーや例外はスローされません。私の観点からは、すべてが正常に機能するはずです。私のクリック機能は次のようになります。

click: function() {
    this.counter++,
    name = this.name+this.counter.toString(),
    tre = App.Ticket.create({
        Text: "try",
       id: name
    });

    this.pushObject(tre);
}});

所属するhtmlはここにあります:

<div class="accordion-group">
    {{#each content}}
       <div class="accordion-heading">
           <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" {{bindAttr href="id"}}>
                 Ticket ID/Störfall
           </a>
        </div>
        <div {{bindAttr id="id"}} class="accordion-body collapse in ">
             <div class="accordion-inner">
                 {{Text}}
             </div>
         </div>
     {{/each}}
</div> 

あなたが私を助けてくれることを願っています。

4

1 に答える 1

1

アコーディオンリンクのタイトルにアクションヘルパーを追加できます

<a class="accordion-toggle" data-toggle="collapse" 
data-parent="#accordion2" 
{{bindAttr href="item.id"}} 
{{action "click" item target="view"}}>
     Ticket ID/Störfall
</a>

次に、ビューにクリックハンドライベントを実装します

   App.TicketView = Em.View.extend({
        click:function(context) {
            var el = this.$('a[href='+context.get('id')+']');
            el.toggleClass('collapsed');
            this.$('#'+el.attr('href')).toggleClass('in');
        }
    });

これが実用的なフィドルです

于 2013-01-28T18:30:59.087 に答える