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 从服务器的获取响应中排除时删除属性主干模型_Javascript_Backbone.js_Underscore.js - Fatal编程技术网

Javascript 从服务器的获取响应中排除时删除属性主干模型

Javascript 从服务器的获取响应中排除时删除属性主干模型,javascript,backbone.js,underscore.js,Javascript,Backbone.js,Underscore.js,我意识到这有点不标准,但我正在寻找一种方法,这样我就可以使用主干的fetch方法从服务器上删除json响应中未包含的模型属性。基本上是排除属性的自动取消设置 现在,我可以擦除所有内容并在模型上重新设置,但我希望这样做不会触发其余属性的更改事件 我还希望不必循环响应对象并调用unset。是否有一个明显的主干特征是我所缺少的 我为这个场景设计了一把小提琴。尝试通过所有测试,同时仅修改model.fetch行 我刚刚查看了一下,似乎Modelfetch没有重置标志。不过,你可以用沉默的旗帜来解除沉默。

我意识到这有点不标准,但我正在寻找一种方法,这样我就可以使用主干的fetch方法从服务器上删除json响应中未包含的模型属性。基本上是排除属性的自动取消设置

现在,我可以擦除所有内容并在模型上重新设置,但我希望这样做不会触发其余属性的更改事件

我还希望不必循环响应对象并调用unset。是否有一个明显的主干特征是我所缺少的

我为这个场景设计了一把小提琴。尝试通过所有测试,同时仅修改model.fetch行


我刚刚查看了一下,似乎Modelfetch没有重置标志。不过,你可以用沉默的旗帜来解除沉默。自0.9.10以来,主干网的行为应该会让您满意,我想:

在change上传递{silent:true}将不再延迟单个change:attr事件,相反,它们将被完全沉默

var mockResponse = '{ "id": 1 }';
this.server.respondWith("GET", "/test", [ 
    200, 
    { "Content-Type": "application/json" },
    mockResponse
]);

var model = new MyModel({ foo: 'remove me', keep: true });
model.on('change:keep', function () {
    ok(false, 'Failure!  Do not trigger change on this if at all possible.');
});

// Act
model.fetch(); // Need a flag here?
this.server.respond();

// Assert
equal(model.get('foo'), undefined, 'I want this removed via fetch');