【发布时间】:2017-01-12 14:32:22
【问题描述】:
我的数组中的对象很少,我想将一些道具从工厂添加到类型为日期的对象。
我不需要从此对象中删除旧值。我尝试这样做:
angular.forEach($scope.things, function(item) {
if(item.type === 'date') {
item = DateFactory.prototype.createFactory();
}
})
但它不起作用,我错在哪里? Plunker example
【问题讨论】:
-
什么是
createFactory?为什么要从原型中调用方法? -
在这种情况下,首先使用工厂是一个错误,因为这个工厂创建/返回类(不是类的实例)。更准确地说:每次调用这个工厂时,都是同一个静态/不变类的新化身。您可能想要在代码示例中做的是某事。更像
$scope.things = $scope.things.map(item => item.type === 'date'? Object.assign(new DateClass(), item): item)但要使其工作,您必须更改代码以提供DateClass而不是每次调用时都会创建新日期类的工厂。 -
和
DateFactory.prototype.createFactory()方法完全没有意义;既不存在也不知道它做了什么。 -
@Thomas 是的,你说得对,谢谢你给我解释一下)
标签: javascript angularjs arrays object frontend