我从服务器收到一个对象数组:
[{name: 'Al'}, {name: 'Ann'}]
我想将它们转换为我创建的 Person 构造函数。现在我这样做:
function Person(attributes) {
angular.extend(this, attributes);
return this;
}
Person.prototype.getName = function() {
return "My name is " + this.name;
}
$scope.people = [];
$http.get('people')
.success(function(people) {
$scope.people = people.map(function(person, i) {
return new Person(person);
});
});
有人能想到更好的方法吗?一个不需要将我的数组中的每个对象转换为所需的构造函数?也许是一种告诉我的数组,其中的所有对象始终是Person的实例的方法。或者我可以将getName方法包含在$ scope.people数组中,并以某种方式让其中的对象调用位于其父数组中的方法...
此外,如果有一种方法可以将对象转换为构造函数(以及它的原型方法)而不使用angular.extend,就像我在我的示例中所做的那样。感谢。