AngularJS:自动链接$ resource动作

时间:2014-04-28 15:26:07

标签: javascript angularjs angularjs-resource

我有一个AngularJS资源实现,(原则上)工作正常。现在特殊情况是:

  • 资源的一个字段(属性)是“最后更改的时间戳”
  • 如果它在更新请求中到达服务器,则忽略它。服务器始终自动设置“上次更改的时间戳”
  • 服务器上的更新方法都以某种方式实现,即响应为空(而不是包含修改过的实体)

因此,在这些情况下,要在服务器进行更新操作后获取“上次更改的时间戳”,我必须在更新后立即进行获取。

myEntity.$update( function(){ myEntity.$get(); } );

现在的问题是: AngularJS是否提供了一种自动链接动作的方法:

  • 在MyEntity定义中定义,它需要在$ update之后始终执行$ get。
  • 然后,在应用程序代码中调用

    myEntitty.$update();
    

1 个答案:

答案 0 :(得分:1)

感谢@marck推动我朝着正确的方向发展。解决方案基本上是

    var MyEntity = $resource( ...,
        { 
            get: {...},
            update: {...}
        }
    );


    // params is passed to $update.
    // after successful $update, a parameterless $get is called
    // success is called after successful $get
    // error is called if $update OR $get failed
    // returns the promise of the $update
    MyEntity.prototype.$updateAndRefresh = function(params, success, error){
        var item = this;
        return item.$update(params, function(){
            item.$get(success, error);
        },
        error);
    }