0

Ember.jsには、次のビューがあります

{{#if obj.property}}
    <div {{bindAttr class="prop"}}>content</div>
{{/if}}

この要素がビューに挿入されたとき、およびクラスが要素にアタッチされたときにコールバックするにはどうすればよいですか? CSS クラスはアニメーション クラスであるため、これを行いたいのですが、要素の onAnimationEnd イベントにフックして、アニメーションが終了したときに通知を受け取るようにしたいと考えています。

4

2 に答える 2

2

div を didInsertElement を実装するカスタム ビュー サブクラスに変更するのはどうですか? 例えば

{{#if obj.property}}
    {{view App.MyView}}
{{/if}}

App.MyView = Ember.View.extend({
  classNameBindings: "prop",
  didInsertElement: function() {
     // use this.$() to get a jQuery handle for the element and do what you'd like 
  }
})
于 2012-05-19T04:40:31.443 に答える
0

ルークの答えに加えて、これを達成するための別の方法を見つけました。これは、ルークのアプローチにはビューを作成する必要があるため、好ましい場合があります。

DOMイベントが発生するという事実を利用することで、挿入される可能性のあるものをすべて含む親DOM要素にanimationEndのイベントハンドラーを設定できます。例えば

<div id="container">
{{#if obj.property}}
    <div {{bindAttr class="prop"}}>content</div>
{{/if}}
</div>

// view.js
didInsertElment: function() {
    this.$('#container').bind('webkitAnimationEnd', function(e) {
        // e.target is the element whose animation ended.
    }
}
于 2012-05-20T06:25:25.320 に答える