2013-08-20 8 views

答えて

6

classrenderの方法の後で手動で更新する必要があります。あなたが見てみるならば、それはすでに存在している要素の場合はチェックを持っている

_ensureElement: function() { 
     if (!this.el) { 
     var attrs = _.extend({}, _.result(this, 'attributes')); 
     if (this.id) attrs.id = _.result(this, 'id'); 
     if (this.className) attrs['class'] = _.result(this, 'className'); 
     var $el = Backbone.$('<' + _.result(this, 'tagName') + '>').attr(attrs); 
     this.setElement($el, false); 
     } else { 
     this.setElement(_.result(this, 'el'), false); 
     } 
} 

:バックボーンは_ensureElement方法の間、あなたのビューの要素のclassNameだけ時間一回を初期化します。 とにかく、あなたはあなたのrender方法で手動で行うことができます。

render: function(){ 
    //Your logic 
    this.$el.attr('class', _.result(this, 'className')); 
} 
+0

、ワンダフルどうもありがとう! – user2568596

+4

オーバーキルアラートのため、ビューが表示される前に 'this。$ el.addClass( 'classname')'を実行するだけです。 –

+1

クラスを追加する(いくつか追加する、いくつかを切り替える、など)よりも複雑な作業をしていない限り。その理由から、それは残忍ではなく、堅牢です。 –