Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Backbone.js model.get无法检索值_Javascript_Backbone.js - Fatal编程技术网

Javascript Backbone.js model.get无法检索值

Javascript 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

这是我在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

更新了这里有一个更精简的方法:

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。我有一种感觉,某个事件可能会在某个地方抵消这种影响。