Angularjs 覆盖角forEach中的属性
我想这是一件容易的事情,但我无法通过谷歌找到我想要的信息。我有Angularjs 覆盖角forEach中的属性,angularjs,Angularjs,我想这是一件容易的事情,但我无法通过谷歌找到我想要的信息。我有PopupProperty,这只是默认的东西。然后我调用服务,该服务根据弹出窗口返回特定的覆盖。如何迭代所有服务的覆盖并将其应用于PopupProperty var popupProperties = getDefaultPopupProperties(); var popupOverrides= popupService.getPopupOverrides(currPopupId); angular.forEach(popupOv
PopupProperty
,这只是默认的东西。然后我调用服务,该服务根据弹出窗口返回特定的覆盖。如何迭代所有服务的覆盖并将其应用于PopupProperty
var popupProperties = getDefaultPopupProperties();
var popupOverrides= popupService.getPopupOverrides(currPopupId);
angular.forEach(popupOverrides, function(popupProperty, propertyName){
//replace defaults with popupData's properties
});
我假定您的意思是这两个函数都返回具有许多属性的对象(与数组相反) 如果是这样的话,以下应该可以工作-只是JavaScript,没有特定于AngularJS的内容:
for (var attrname in obj2) { obj1[attrname] = obj2[attrname]; }
查看此问题以了解更多详细信息您应该看看Josh David Miller的解决方案,该解决方案使用angular()的扩展方法
这些值将复制到默认值变量中。不需要使用返回值(var props=)。谢谢,我来试一试。这确实有效,但不是“角度”方式+但是工作答案是1。你的意思是?e、 g.
angular.extend(PopupProperty、popupOverrides)
var defaults = {name:'John',age:17,weight:55};
var overrides = {name:'Jack',age:28,color:'brown'};
var props = angular.extend(defaults, overrides);
// result
props: {
name:'Jack',
age:28,
weight:55,
color:'brown'
}