当前位置: 首页 > 面试题库 >

$ resource回调(错误和成功)

左丘宜年
2023-03-14
问题内容

我正在使用AngularJS 1.1.3将新的$ resource与promises一起使用…

我如何从中获得回调?我尝试使用与$ 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 ,也总是打印“成功,有数据” 。

任何想法?

谢谢


问题答案:

从角度
资源
和角度1.2 的
PR开始
,角度将切换为执行成功/错误检查的更简单方法。无需附加回调或$ then方法,Resource.get(..)和instance.get()都将支持$
promise方法,该方法自然会为这两者返回一个承诺。


从1.2版本开始,$ promise功能将启用: $
promise更改

将您的“获取”请求更改为类似以下内容(原始示例在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;
});

在控制器中的其他位置,您可以实例化资源“项目”实例,在该实例中,您可以使用相同的接口进行成功和错误操作:

var myProject = new Project();

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


 类似资料:
  • 我已经构建了一个使用AJAX提交表单数据的登录脚本。 PHP部分在没有AJAX的情况下运行良好。但是系统不能与AJAX实现一起工作。 它始终显示以下消息,即使 PHP 文件返回 true[正确的用户名 用户名/密码不正确 超文本标记语言Result Div JQuery fn_login.php 有人可以指出代码/实践中的错误吗? 刚刚尝试禁用AJAX,当用户名/密码正确时,PHP文件可以正确回显

  • 我在研究JNI的回电 null

  • 问题内容: 我在这里需要一些建议或一些解释。我有一个jquery ajax调用, 一切正常。我的回调响应正确触发。但是,我注意到的是,即使我的呼叫返回成功状态200,每次也会触发我的回调。在上面的回调中,我看到该对象是200。 谁能解释什么地方出了问题或这里发生了什么?回调应该仅在我有404或非200响应时触发。我的假设正确吗? 谢谢。 问题答案: 错误回调将在http错误时调用,但 如果响应上的

  • 这是我第一次使用公钥,我收到回拨错误。我一直在试图找到一个解决方案,我不确定它是否与设置或我正在使用的东西。 我的设置是2个虚拟机(Mint Linux托管服务器,Mac OS X托管客户端)都安装在桥接适配器上,都是运行Ubuntu 20.04的虚拟机,都是新安装的这些都是用于设置公钥的说明(我已经非常熟练地执行了这一操作,我已经做了好几次) https://www.linuxbabe.com/

  • 问题内容: 我有以下JS 和以下控制器代码: addarticle()javascript ajax可以运行并将vars发送到服务器并进入db,但是,javascript然后将运行错误函数而不是成功函数。http响应代码是200,我以为它将运行Success函数。有什么建议? 问题答案: 您需要从控制器返回json,因为这是jQuery期望的。您可以返回即 或者,您可以将html设置为数据类型(也

  • 问题内容: 我目前正在尝试返回数据库调用以填充下拉框。但是,当我循环浏览返回的列表时,出现“未定义回调”错误。我已经用两种方法尝试过此代码,但都没有用。 我试过了: 我也尝试过: 两者都给我错误: TypeError:回调未定义 返回的数据对象是我必须从中拉出两部分的数据库对象的列表。 如何解决此“回调”错误,以便可以在函数中使用数据? 问题答案: 回调是在其前任完成操作并返回值后立即执行的函数。