2016-10-12 54 views
0

我有這個指令對我的LD客戶端內工作。我試圖在ng-repeat中使用它,但它不會工作。這個問題有什麼問題?我怎樣才能使它工作?我怎樣才能讓我的自定義指令的NG-重複

嘗試添加NG重複和工作之外的指令。

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?你可以添加ng-repeat html嗎? –

+0

@RIYAJKHAN ldclient是一個標記客戶端模塊。我的ng-repeat html有點長,這就是我沒有包含它。我嘗試使用ng-repeat之外的指令及其工作。但如果它的內部是一個ng - 重複它的另一個故事 – arven

回答

0

如果LDCLIENT是範圍是NG-重複是下那麼你可以添加範圍:true和使用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事件也沒有得到..好像它可以訪問ready事件,當他完成了它的初始化 – arven