2013-05-08 3 views
3

작은 문제가 있습니다. 바인딩하지 않고, 제대로 만든바인딩없이 동일한 프로토 타입에서 각진 모델을 만드는 방법은 무엇입니까?

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

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

C와 D :

var def = { 
    value: 'example' 
} 

각도에서 : 나는 프로토 타입으로 초기 개체를 기반으로, 바인딩없이이 개 각도 모델을 만드는 데 사용할 객체를 . 하지만 앵글 뷰에서 객체의 초기 값에 접근 할 수 없다.

나는 Object.prototype에 대해 읽었지만 어떤 해결책도 찾을 수 없었다.

var c = angular.copy(def); 

내가 당신의 바이올린에 그것을 시도, 나는 당신이 원하는 것을 생각 :

나는 Object.create에서 angular.copyfiddle here

+0

실제로 'c.value'또는 'd.value'로 액세스 할 수 있습니다. 문제는 JSON 필터 때문입니다. JSON.stringify 메서드는 상속 된 속성을 고려하지 않으므로 출력에서 ​​해당 속성을 볼 수 없습니다. – katranci

답변

3

변경 당신의 복사 기능을 넣었습니다

c:{ "value": "example", "anothervalue": 12345 } 
d:{ "value": "example", "anothervalue": 765432 } 
1

큰 오브젝트에서는 angular.copy()이 상당히 느릴 수 있습니다. 당신이 당신의 객체에 단순한 변수가 아니라 어떤 기능을 가지고 있다고 가정

, 당신은 사용할 수 있습니다

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

업데이트 바이올린 : http://jsfiddle.net/0d8fp9bz/

출처 : https://stackoverflow.com/a/4591639/5385381

경고 :이 수 Date 객체와 JSON 사양의 일부가 아닌 객체를 파괴합니다.

관련 문제