我有一个默认的Object,其中列出了所有参数。现在我给用户一个列出一些参数并让它工作的权利,其他的将是我提到的默认值。 问题是我没有让它在使用angular的深度复制解决方案的指令中工作,即angular.merge() 您可以看到代码here。 问题出在这些方面。
console.log(scope.options);
scope.options = angular.merge(defaultOptions,scope.options);
console.log(scope.options);
现在,如果您在控制台中看到scope.options两者都不同,则不应该是这种情况。 我该如何解决这个问题?我做错了什么?
答案 0 :(得分:1)
您可能没有注意到,但是您正在将数组($scope.options
)与对象文字(defaultOptions
)合并。尝试将$scope.options
更改为对象,您将获得所需的行为,至少是您要求的行为。
小提琴updated。
答案 1 :(得分:0)
为什么他们应该有所不同?你合并他们。
您正在 scope.options 中合并 defaultOptions 。
在您的示例中,我假设您要进行 defaultOptions === scope.options ,因此如果您想使用合并进行复制,则需要
delete scope.options;
这是Fiddle