2016-10-12 6 views
0

내 ld 클라이언트에이 지시문이 있습니다. 나는 ng-repeat에서 사용하려고했지만 작동하지는 않습니다. 이 문제는 무엇입니까? 어떻게 작동시킬 수 있습니까?내 사용자 지정 명령을 ng-repeat 내에서 수행하는 방법

ng-repeat 및 해당 작업 외부에서 지침을 추가하려고 시도했습니다.

ldClient는 플래그 변경에 따라 참 또는 거짓 기준을 반환하는 다른 모듈의 api 변수입니다.

실제로는 심지어 심지어 그것을 호출하지 같은 지침을 평가 나던 때 그것 NG-반복 내부

app.directive('flag', function (utilService) { 
 
    return { 
 
     restrict: 'A', 
 
     link: function (scope, element, attrs) { 
 
      ldclient.on('ready', function() { 
 
      var flag = false;   
 
      console.log(element); 
 
      flag= ldclient.variation(attrs.flag, false); 
 
      if(flag == false){ 
 
       element.remove(); 
 
      } 
 
      });    
 
     } 
 
    } 
 
});

+0

ldclient 란 무엇입니까? ug-repeat html을 추가 할 수 있습니까? –

+0

@RIYAJKHAN ldclient는 플래그 지정 클라이언트 모듈입니다. 내 ng-repeat html은 다소 길다. 나는 ng-repeat와 그 작업 밖에서 지시문을 사용하려고 시도했다. 하지만 그 내부가 다른 이야기를 반복한다면 – arven

답변

0

ng를 반복 미만이다 ldclient이 범위에있는 경우, 다음 범위를 추가 할 수 있습니다 : 진실하고 사용 scope.ldclient.on을 등 ('준비')

이 시도 :

app.directive('flag', function (utilService) { 
    return { 
     restrict: 'A', 
     scope: true, 
     link: function (scope, element, attrs) { 
      scope.ldclient.on('ready', function() { 
      var flag = false;   
      console.log(element); 
      flag= scope.ldclient.variation(attrs.flag, false); 
      if(flag == false){ 
       element.remove(); 
      } 
      });    
     } 
    } 
}); 

이렇게하면 지시문이 배치 된 DOM 내에서 범위를 공유하게됩니다.

+0

ldclient가 범위에 있지 않다면 어때? 해당 범위의 일부가 아닌 javascript 변수로 선언되었습니다. – arven

+0

console.log (attrs.flag)를 사용하여 값이 올바르게 설정되어 있는지 확인하십시오. 그렇지 않으면 ldclient가 창에 있으면이 블록 내에서 사용할 수없는 이유는 알 수 없습니다. – Porlune

+0

나는 attrs.flag를 기록했고 내가 원하는 플래그를 보여 주었다. ldclient.on 이벤트에서 그걸 얻지 못했다. ldclient가 초기화를 완료했을 때 준비된 이벤트에 액세스 할 수있는 것 같다. – arven