0

バックボーンの経験者にとっては非常に単純な問題ですが、ここでの回答は非常に役立ちます。機能的な答えを探すのではなく、この特定の例で実際に何が起こっているかについて詳しく説明します。

次のコードを使用します(お気に入りからの簡単な追加/削除)

render: function() {
    $(this.el).html(this.model.get('name'));
    $(this.el).append("<span class='unfav'>remove</span>");
    $(this.el).append("<span class='fav'>add</span>");
    if( this.model.get("selected") == true ){
        $(this.el).addClass("selected");
    } // Should we really need to have an 'else' conditions here that removes the clas :( ? sound weird to me.
    return this;
}

完全なコードはこちらhttp://jsfiddle.net/eHAfY/3/ (コードベースの @cymen に感謝)

要素を追加した後、

「追加」をクリックするとアイテムが変更され、削除をクリックしても変更されない理由がわかりません。trueの場合に効果がある条件がある場合、falseの場合でもクラスがここにあるのはなぜですか?

4

1 に答える 1

1

$(this.el).html(...);render メソッドは、render メソッドが通常行うと予想される内部 HTML を消去します。

$(this.el).addClass("selected");が true の場合にのみ外部コンテナーを変更すると、条件が false の場合にこのmodel.selectedクラスを削除する必要があることをビューが認識できなくなります。

于 2012-11-22T10:09:51.830 に答える