1

这是我在 Backbone.js 中的应用程序遇到的一个非常奇怪的问题。我有不同的搜索结果显示在手风琴中,一次只能选择一个结果。

每个结果的模型都有一个属性“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 回答