0

假设我有简单的用户资源:

angular.module('models', ['ngResource']).
    factory('User', function($resource) {
    var User = $resource('/api/users/:userId', {userId:'@id'}, {});
    return User;
});

这可能会返回一个包含{firstName: 'bob', lastName: 'smith'}. 我想显示在我看来的fullName用户firstName +' '+ lastName。如何做到这一点?

现在在我的控制器中,我有:

$scope.user = User.get({userId: 42}); //bob smith

但是我在哪里附加fullName功能?

4

1 回答 1

1

您应该能够只使用资源并使用 JavaScript 的原型添加新属性或方法。因为它返回一个构造函数。

所以像:

User.prototype.fullName = function() {
     return this.firstName + ' ' + this.lastName;
};

编辑:如果由于某种原因不起作用......有一个小的 JavaScript hack 用于修改被闭包隐藏的对象原型:您可以使用.constructor创建对象的属性并更改其原型。

于 2012-10-17T13:16:01.713 回答