如何使我的自定义指令在ng-repeat

时间:2016-10-12 05:28:36

标签: angularjs angularjs-ng-repeat ng-repeat directive

我的ld客户端有这个指令。我尝试在ng-repeat中使用它,但它不会工作。这个有什么问题?我怎样才能使它发挥作用?

尝试在ng-repeat及其工作之外添加指令。

ldClient是其他模块中的api变量,它根据标志变量返回true或false。

实际上它甚至没有评估指令,就像它在ng-repeat

中时甚至没有调用它一样

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();
            }
          });            
        }
   }
});

1 个答案:

答案 0 :(得分:0)

如果ldclient在ng-repeat所在的范围内,那么你可以添加scope:true并使用scope.ldclient.on('ready')等。

试试这个:

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中共享范围。