1

これは、Backbone.js のアプリで私が抱えている非常に奇妙な問題です。アコーディオンに表示されるさまざまな検索結果があります。一度に 1 つの結果しか選択できません。

各結果のモデルには、結果が選択されているかどうかを表す "selected" 属性があります。

何らかの理由で、試合の選択を解除できません。これは、結果をクリックしたときに実行されるコードです。

私はそれを見てきましたが、selected は常に false を返し、どういうわけか、この関数で true に設定されることはありません。

click_header: function (e) {
    e.stopPropagation();
    var s = this.model.get("selected");
    if (s == true) {
        this.model.set({ selected: false, expanded:false});
    } else {
        this.model.set("selected", true, { silent: true });
        this.model.set("expanded", true, { silent: true });
    }

}

編集:問題を修正しました。select への変更によってトリガーされるプログラムの別の場所の関数は、すべてのモデルで select を false に設定していました。

4

2 に答える 2

1

問題を修正しました。select への変更によってトリガーされるプログラムの別の場所の関数は、すべてのモデルで select を false に設定していました。

于 2013-07-08T18:46:09.540 に答える
-1

更新されたより合理化されたアプローチは次のとおりです。

click_header: function (e) {
    e.stopPropagation();
    var s = this.model.get("selected");
    this.model.set({ selected: !s, expanded: !s}, { silent: !s });
}
于 2013-07-08T18:14:05.773 に答える