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()
也起作用