0

복잡한 변수 시계 $이 같은 변수 시계 :.가있다

$scope.data.localization[$scope.locale].properties[0].value 

$ scope.data.localization [$ scope.locale] .properties 파일을 각 객체는 코드 값을 가진 객체의 배열, 나는 동적 양식을 만들려면 다음 커플을 사용 : 다른 텍스트 상자에 값이있는 경우에만 지금

<input type="text" ng-repeat="property in $scope.data.localization[$scope.locale].properties" ng-model="property.value" /> 

는 일부 텍스트 상자를 볼 수 있어야합니다, 그래서 기본적으로 내가 $ 싶었 scope. $ 그 값 중 하나를 보지만 작동하지 않는다면, $ w의 콜백 atch는 절대 해고되지 않습니다.

$scope.$watch("data.localization." + $scope.locale +".properties[0].value", function() { 
    //show/hide another texbox if I have a value 
}); 

어떻게 구현할 수 있습니까?

편집 : 나는

$scope.$watch("data.localization", function() { 
    //show/hide another texbox if I have a value 
}); 

을 시도하고 문제가 동적 특성 $ scope.locale하지만 나는 그것을 방지하는 방법을 모르는 것 같습니다 그래서, 콜백을 발생합니다.

전체 배열을 보면 어떤 값이 변경되었는지 알 수없는 문제가 있습니다.

답변

0

이 시도 :

var myWatcher = "data.localization." + $scope.locale +".properties[0].value";  
$scope.$watch(myWatcher, function() { 
    //show/hide another texbox if I have a value 
}); 
0

당신은보고 값을 반환하기 위해 시계의 기능을 사용할 수 있습니다. 시도해보십시오 :

$scope.$watch(function() { return $scope.data.localization[$scope.locale].properties[0].value; } , function() { 
    //show/hide another texbox if I have a value 
}); 
+0

글쎄, 그 문제는 내가 그 루프를 항상 마지막 속성을 유지하는 루프에 넣는다는 것입니다. 사실 실제 코드는 $ scope.data.localization [$ scope.locale] .properties [idx] .value입니다. idx는 내가 볼 필요가있는 속성의 인덱스입니다. –

관련 문제