Javascript 在获取之前检查模型属性
我在主干路由器的方法中有这行代码Javascript 在获取之前检查模型属性,javascript,jquery,backbone.js,backbone-model,Javascript,Jquery,Backbone.js,Backbone Model,我在主干路由器的方法中有这行代码 $.when(system.sideEngine.fetch(), system.lifeSupport.fetch()).done( ... 如果系统具有侧引擎ID和生命支持ID,则工作正常。然而,如果其中一个id丢失,我会得到一个404NotFound错误,我的页面将不会加载 我尝试包含如下错误语句: error: function (model, xhr, options) { console.log("something went wrong!
$.when(system.sideEngine.fetch(), system.lifeSupport.fetch()).done( ...
如果系统具有侧引擎ID
和生命支持ID
,则工作正常。然而,如果其中一个id丢失,我会得到一个404NotFound错误,我的页面将不会加载
我尝试包含如下错误语句:
error: function (model, xhr, options) {
console.log("something went wrong!");
}
但那不是我想要的。我不想因为没有身份证而妨碍演出。不管怎样,我仍然希望系统加载
除了创建一个复杂的if/then树之外,是否有一种方法可以在执行提取之前有条件地检查id?在这种情况下应该会有所帮助
如果模型还没有id,则认为它是新的
var MyModel=Backbone.Model.extend({
idAttribute:'随便什么',
fetch:function(){
$('#result').append('fetch fired!
');
返回null;
}
});
var noId=new MyModel(),
hasId=新的MyModel({
随便什么:5
});
美元。什么时候(
noId.isNew()?null:noId.fetch(),
hasId.isNew()?null:hasId.fetch()
).done(函数(){
$('result').append('done fired!');
});代码>
在这种情况下,应该会有所帮助
如果模型还没有id,则认为它是新的
var MyModel=Backbone.Model.extend({
idAttribute:'随便什么',
fetch:function(){
$('#result').append('fetch fired!
');
返回null;
}
});
var noId=new MyModel(),
hasId=新的MyModel({
随便什么:5
});
美元。什么时候(
noId.isNew()?null:noId.fetch(),
hasId.isNew()?null:hasId.fetch()
).done(函数(){
$('result').append('done fired!');
});代码>
$。when()
是不必要的,因为null
就足够了。@emilebergron你能解释一下吗?所以不要写“$”。when():“只写”?null:“--谢谢@SkyeBoniwell是的,没错,$。当
起作用时,即使承诺没有兑现。我会更新答案以反映情况,为了清晰起见,我会使用条件运算符:model.isNew()| model.fetch()
也起作用。$。当()
是不必要的,因为null
就足够了。@EmileBergeron你能解释一下吗?所以不要写“$”。when():“只写”?null:“--谢谢@SkyeBoniwell是的,没错,$。当
起作用时,即使承诺没有兑现。我将更新答案以反映情况,为了清晰起见,我将使用条件运算符:model.isNew()| model.fetch()
也起作用