Javascript Backbone.js model.get无法检索值
这是我在Backbone.js中遇到的一个非常奇怪的问题。我有不同的搜索结果显示在手风琴上,一次只能选择一个结果 每个结果的模型都有一个属性“selected”,表示是否选择了结果 由于某种原因,我无法取消选择匹配项。这是在单击结果时运行的代码 我一直在查看它,selected总是返回false,而且不知何故,在这个函数中永远不会设置为trueJavascript Backbone.js model.get无法检索值,javascript,backbone.js,Javascript,Backbone.js,这是我在Backbone.js中遇到的一个非常奇怪的问题。我有不同的搜索结果显示在手风琴上,一次只能选择一个结果 每个结果的模型都有一个属性“selected”,表示是否选择了结果 由于某种原因,我无法取消选择匹配项。这是在单击结果时运行的代码 我一直在查看它,selected总是返回false,而且不知何故,在这个函数中永远不会设置为true click_header: function (e) { e.stopPropagation(); var s = this.model
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 更新了这里有一个更精简的方法:
click_header: function (e) {
e.stopPropagation();
var s = this.model.get("selected");
this.model.set({ selected: !s, expanded: !s}, { silent: !s });
}
我解决了这个问题。程序中其他地方的一个功能被更改为select触发,在所有型号上都将select设置为false。要解释一下吗?我几乎看不出从一种语法转换到另一种语法能解决他的问题。你是什么意思,它没有设置好?是不是因为当为true时您正在默默地更新?它实际上是通过if语句进行的。多次单击该元素并使用chromedev工具对其进行跟踪,它总是转到else。我有一种感觉,某个事件可能会在某个地方抵消这种影响。