Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 覆盖角forEach中的属性_Angularjs - Fatal编程技术网

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'
}