0

컨트롤러의 데이터를 지시문에 전달하고 있습니다. 컨트롤러가 데이터를 변경하고 있지만 컨트롤러의 데이터가 변경 될 때 응답하도록 지시문을 가져올 수 없습니다. 다음은 JSFiddle : http://jsfiddle.net/mcardleliam/ReJQq/1/에 대한 링크입니다. ""(변경 법안); "컨트롤러 보는 각도 지시자의 범위

<div ng-app="app" ng-controller="appCtrl"> 
    <h1 foo>Prop: {{prop}}</h1> 
</div> 

angular.module('app', []) 
.controller('appCtrl', function($scope, $timeout) { 
    $scope.prop = 0; 
    var f = function() { 
     $scope.prop = $scope.prop += 1; 
     $timeout(f, 1000); 
    } 
    f(); 

}) 
.directive('foo', function() { 
    return { 
     restrict: 'A', 
     link: function(scope) { 
     console.log('initial prop', scope.prop); 
     scope.$watch(scope.prop, function() { 
      console.log("prop changed"); 
     }); 
     } 
    }; 
}); 

CONSOLE.LOG"

내 HTML은 다음과 같습니다 컨트롤러 $ scope.prop 속성이 변경 될 때마다 호출되어야하지만 그렇지 않습니다. 누구든지 내가 뭘 잘못하고 있는지 알아?

답변

1

당신은 지침이 필요합니다

scope.$watch('prop', function() { 
    console.log("prop changed"); 
}); 

대신 scope.prop의 '소품'으로 재산을 참조하십시오.

+0

그래, 나도 알아 냈어. 감사. 다음은 몇 가지 추가 변경 사항이있는 업데이트 된 JSfiddle입니다. http://jsfiddle.net/mcardleliam/ReJQq/2/ – mcardleliam

+0

질문에 대한 대답은 무엇입니까? – dmahapatro

+0

예, 질문에 대한 답변입니다. 내 문제는 내가 범위 (즉, scope.prop)에서 속성을 직접 호출하려고했다는 것이 었습니다. 대신 $ watch 함수의 첫 번째 속성은 문자열이어야합니다 (예 : 'prop'). – mcardleliam

관련 문제