根据您的代码示例改编
Restangular.one("undefined_ressource").get().then(
function(myObject){
console.log("success obtained myObject");
},
function (res) {
console.log("fail", res.status);
}
);
那么应该调用第一个函数,并将其参数设置为myObject。
除非你的myObject具有特定的code或status字段,否则 Restangular 不会添加任何字段。
那么应该调用第二个函数,并将其参数设置为response对象,其中包含状态、头部、数据和配置字段。
在您的示例中,不应存在任何code字段。
如果出现HTTP 404未找到异常,则在我的浏览器JavaScript控制台中会显示:
"fail" 404
使用错误拦截器
myAngularApp.run(['Restangular', '$window', function(Restangular, $window){
Restangular.setErrorInterceptor(
function(response) {
if (response.status == 401) {
console.log("Login required... ");
$window.location.href='/login';
} else if (response.status == 404) {
console.log("Resource not available...");
} else {
console.log("Response received with HTTP error code: " + response.status );
}
return false;
}
);
}]);
如果您在您的angular应用程序
myAngularApp上设置了错误拦截器,如上例所示,则失败不应再到达您的自定义调用
then第二个函数,而应该由设置的errorInterceptor函数处理。
在HTTP 404未找到异常的情况下,在我的浏览器javascript控制台中,我获得:资源不可用...
测试使用:
Angular version 1.2.14
Restangular version 1.3.1