2015-01-30 1 views
4

이름에 점 (.)이 포함 된 속성이 있습니다. 나는 이것이 드문 일이지만, 이것들은 자동적으로 만들어지고 key1.key2로 볼 수있다.점이 포함 된 속성의 watchCollection

이제이 속성 "key1.key2"의 watchCollection이 key1 객체의 속성 key2로 해석되므로 실패합니다. Angular watchCollection의 첫 번째 매개 변수는 표현식이어야합니다.

$scope.$watchCollection ('["key1.key2"]', ...); 

을하지만 컬렉션과 같이 정의 된 경우는

+0

당신이 k_k 다음 JS에서 사용하는 K.K에서 해당 키를 변환하는 파서를 사용하여 시도 사용할 수 있습니까? 그런 다음 데이터를 보내기 전에 k.k로 다시 변환하십시오. –

+0

이것은 확실하게 작동 할 것입니다 ...이 경우에는 "정상적인"속성 이름이 될 것입니다 ...하지만 사용 사례에 솔루션이 있는지 궁금합니다 ... "흔치 않은"경우에도 js에서 점으로 된 속성을 사용할 수 있습니다. – Robert

+0

오 예 네 방법이 있습니다, 당신은 어떤 응답을 울부 짖을 수 있고 그들이 작동하지만, 나는 더 자연스럽게 파싱하고 변형 된 느낌. 또한 더 읽을 수 있습니다 –

답변

3

당신은

$scope.$watchCollection ('this["key1.key2"]', ...); 
+0

예,이 작업이! – Robert

2

작동하지 않습니다 : 우리는뿐만 아니라 시도

$scope['key1.key2'] = { 
    a: 1, 
    b: 2, 
    c: 3 
}; 

다음

$scope.$watchCollection(function() { 
    return $scope['key1.key2']; 
}, function(newCollection) { 
    console.log(newCollection); 
}); 

에 대한 자세한 사항를 참조 OBJ에 대한에 대한 매개 변수. 그것은 할 수 있습니다 또는 문자열이나 기능은

관련 문제