3

我有一个小问题。我有一个对象,我想用它来创建两个没有绑定的角度模型,基于初始对象作为原型:

var def = {
   value: 'example'
}

在角:

var c = Object.create(def);
c.anothervalue = 12345;
$scope.c = c;

var d = Object.create(def);
d.anothervalue = 765432;
$scope.d = d;

c 和 d 被正确创建,没有绑定。但我无法在 Angular View 中访问对象的初始值,即使在控制器中它运行良好。

我读过关于 Object.prototype 的内容,但我找不到任何解决方案。

我在这里放了一个小提琴

4

2 回答 2

3

将您的复制功能从angular.copyObject.create更改为:

var c = angular.copy(def);

我在您的 Fiddle 中尝试过,我认为它可以满足您的要求:

c:{ "value": "example", "anothervalue": 12345 } 
d:{ "value": "example", "anothervalue": 765432 }
于 2013-05-08T07:57:38.643 回答
1

我发现angular.copy()在较大的物体上可能会很慢。

假设您的对象中只有简单的变量而没有任何函数,您可以使用:

var c = JSON.parse(JSON.stringify(d));

更新小提琴:http: //jsfiddle.net/0d8fp9bz/

来源:https ://stackoverflow.com/a/4591639/5385381

警告:这可能会破坏 Date 对象,以及任何不属于 JSON 规范的内容。

于 2016-07-28T16:52:03.400 回答