我正在使用角度资源,
我想用对象本身的一些计算属性来扩展工厂返回的任何对象。
如何向 ngResource 工厂添加 post get 步骤?
你可以像这样扩展原型:
angular.factory('Person', ['$resource', function($resource) {
var Person = $resource(...);
...
Person.prototype.computedProp = this.prop1 + this.prop2;
return Person;
}]);
我还没有测试兼容性,但无论如何我想分享我是如何做到这一点的,以便在我的视图代码中保持 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;
})