0
我想從服務器獲取的對象,像:
var User = $resource('/user/:userId', {userId:'@id'});
我想User
實例都有一定的方法計算得出的數據,而不必返回它的服務器。例如,假設爲:
var aUser = User.get({userId: 43});
服務器返回類似:
{id: 43, name: "Bob", alertTimestamp: 1447365544}
我希望能夠做這樣的事情:
if (aUser.alertTimePassed()) {
// do stuff
}
有沒有乾淨的方式要做到這一點就像這樣,這似乎很詭計?
var alertTimePassed = function() {
var now = (new Date()).getTime()/1000;
return now >= this.alertTimestamp;
};
var User = $resource('/user/:userId', {userId: '@id'}, {
get: {
method: "GET", url: '/user/:userId',
transformResponse: [angular.fromJson, function (obj) {
obj.alertTimePassed = alertTimePassed;
}]
}
});
這裏也有類似的問題和答案。 http://stackoverflow.com/questions/17134401/angular-extending-resource-subobject-with-custom-methods | http://stackoverflow.com/questions/18138147/add-a-custom-function-on-angular-resource – mark