javascript - $resource 回调(错​​误和成功)

标签 javascript angularjs

我正在使用 AngularJS 1.1.3 来使用带有 promise 的新 $resource...

我怎样才能从中得到回调? 我尝试了与 $http 相同的方式:

$resource.get('...').
  success(function(data, status) {
      alert(data);
   }).
   error(function(data, status) {
      alert((status);
   });

但是没有“成功”,也没有“错误”功能......

我也试过:

$resource.get({ id: 10 },function (data) {
   console.log('success, got data: ', data);
 }, function (err) {
   alert('request failed');
 });

即使返回的是 404 也总是打印“成功,获得数据” ...

有什么想法吗?

谢谢

最佳答案

截至 PR on angulars resource 和 angular 1.2,angular 将切换到执行成功/错误检查的更简单方法。 Resource.get(..) 和 instance.get() 都将支持 $promise 方法,而不是附加回调或 $then 方法,这自然会为两者返回一个 promise 。

从 Angular 1.2 开始,$promise 功能将上线:$promise changes

将您的“获取”请求更改为符合以下内容的内容(原始示例位于 angularjs.org 的首页):

factory('Project', function($resource) {
  var Project = $resource('https://api.mongolab.com/api/1/databases' +
      '/youraccount/collections/projects/:id',
      { apiKey: 'yourAPIKey' }, {
        update: { method: 'PUT' }
      }
  );

  Project.prototype.update = function(cb) {
    return Project.update({id: this._id.$oid})
      .$promise.then(
        //success
        function( value ){/*Do something with value*/},
        //error
        function( error ){/*Do something with error*/}
      )
  };

  Project.prototype.destroy = function(cb) {
    return Project.remove({id: this._id.$oid})
      .$promise.then(
        //success
        function( value ){/*Do something with value*/},
        //error
        function( error ){/*Do something with error*/}
      )
  };

  return Project;
});

您可以在 Controller 的其他地方实例化一个资源“项目”实例,您可以在其中使用相同的接口(interface)来处理成功和错误:

var myProject = new Project();

myProject.$get({id: 123}).
   .$promise.then(
      //success
      function( value ){/*Do something with value*/},
      //error
      function( error ){/*Do something with error*/}
   )

关于javascript - $resource 回调(错​​误和成功),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15531117/

相关文章:

javascript - knockoutjs - 如何重用我的 View 模型?

javascript - 循环 promise

javascript - AngularJS:在没有 $watch 的情况下观察变量

javascript - AngularJS $http.get 无法与 Node.js RESTful 一起使用

javascript - 如何在angularjs中按日期范围过滤数据?

javascript - Flow 是否存在不完整(部分)声明之类的情况?

javascript - 我如何在 Chrome 和 IE 中跟踪箭头键?

javascript - 在 javascript 中休息 api 身份验证

angularjs - AngularFire $requireAuth 未检测到过期的身份验证

javascript - AngularJS location.hash 动画