2016-10-12 4 views
0

У меня есть эта директива для моего ld-клиента. Я попытался использовать его внутри ng-repeat, но он не будет работать. В чем проблема с этим? как я могу заставить его работать?Как я могу создать свою пользовательскую директиву внутри ng-repeat

Пытался добавить директиву за пределами ng-repeat и его работу.

ldClient - переменная api в другом модуле, которая возвращает истинную или ложную базу при изменении флага.

На самом деле оно не даже оценить директиву, как он даже не назвав его, когда его внутри нг-повтор

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? Можете ли вы добавить ng-repeat html? –

+0

@RIYAJKHAN ldclient - это флагманский клиентский модуль. мой ng-repeat html длинный, и я не включил его. Я попытался использовать директиву за пределами ng-repeat и его работу. но если его внутри ng-repeat его другая история – arven

ответ

0

Если 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