5
をレンダリング。 問題は、classNameがレンダリングで再計算されないということです。 ビューをレンダリングするときにclassNameを再計算するにはどうすればよいですか?は、私はクラス名が関数で動的に設定されているバックボーンビューをした
誰でも知っていますか? ありがとう
をレンダリング。 問題は、classNameがレンダリングで再計算されないということです。 ビューをレンダリングするときにclassNameを再計算するにはどうすればよいですか?は、私はクラス名が関数で動的に設定されているバックボーンビューをした
誰でも知っていますか? ありがとう
class
をrender
の方法の後で手動で更新する必要があります。あなたが見てみるならば、それはすでに存在している要素の場合はチェックを持っている
_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'));
}
、ワンダフルどうもありがとう! – user2568596
オーバーキルアラートのため、ビューが表示される前に 'this。$ el.addClass( 'classname')'を実行するだけです。 –
クラスを追加する(いくつか追加する、いくつかを切り替える、など)よりも複雑な作業をしていない限り。その理由から、それは残忍ではなく、堅牢です。 –