2014-02-09 1 views
0

지시어를 호출하는 뷰가 있습니다. 이 지시문에서는 컨트롤러 범위의 속성을 사용하려고합니다. 그러나이 속성은 리소스 호출이 반환 될 때 설정되기 때문에 지시문 링크 함수가 실행될 때 아직 설정되지 않습니다.지시문 링크 단계에서 속성을 사용할 수없는 경우 지시문에 AngularJS 컨트롤러 범위 속성을 사용하십시오.

지시어의 속성 값을 자원 결과에서 사용할 수있을 때 어떻게 사용할 수 있습니까?

나는 curerntly 있습니다 imageUploadId 항상 정의되어 있지 않다고에서

 .directive('meImageUpload', ['$parse', '$compile', function ($parse, $compile) { 
     return { 
      restrict: 'A', 
      scope: { 
       imageUploadType: '=imageUploadType', 
       imageUploadId: '=imageUploadId' 
      }, 

<div me-image-upload image-upload-type="'quote'" image-upload-id="record.Id"></div> 

하지만,이 결과를.

+0

'record.Id'는 리소스에서로드되는 데이터의 일부입니까? –

답변

0

귀하의 질문을 이해하면 귀하는 imageUploadId으로 일을하려고하지만 늦게 설정되어 있습니까? 범위 정의로 연결 한 특성이 두 가지 방식으로 묶여 있으므로 이것은 문제가되지 않습니다. 따라서 scope.$watch 기능을 사용할 수 있습니다. 당신이 imageUploadId: '=imageUploadId'로 연결하기 때문에

scope.$watch("imageUploadId", function (newId, oldId) { 
    // here you can use the parameter id newId or read the new one from the scope 
    doSomething($scope.imageUploadId); 
} 

는 값 ( record.id)는,이 또한 지시어에 자동으로 업데이트됩니다 컨트롤러 범위에 변경 한 경우. 이 경우 동일한 이름을 가지므로 속기 imageUploadId: '='을 사용할 수도 있습니다.

+1

완벽한, 감사합니다! – olle

관련 문제