1

我正在使用角度资源,

我想用对象本身的一些计算属性来扩展工厂返回的任何对象。

如何向 ngResource 工厂添加 post get 步骤?

4

2 回答 2

3

你可以像这样扩展原型:

angular.factory('Person', ['$resource', function($resource) {
  var Person = $resource(...);

  ...

  Person.prototype.computedProp = this.prop1 + this.prop2;

  return Person;

}]);
于 2013-04-15T10:41:23.387 回答
0

我还没有测试兼容性,但无论如何我想分享我是如何做到这一点的,以便在我的视图代码中保持 Angular 的风格。

这个想法是 REST 调用给了我一个以 KM 为单位的距离和一个持续时间(以 moment.js 可解析的格式)。我想要实现的是计算属性,它会产生以公里/小时为单位的平均速度。

.factory('Times', function ($resource) {
  var Times = $resource("api/users/:userid/times/:id", {});
  Times.prototype.__defineGetter__("average_speed", function () {
    return this.distance / moment.duration(this.duration).asHours();
  });
  return Times;
})
于 2014-06-25T19:40:07.460 回答