Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 检查指令的一部分是否有值-Angular JS_Angularjs_Angularjs Directive - Fatal编程技术网

Angularjs 检查指令的一部分是否有值-Angular JS

Angularjs 检查指令的一部分是否有值-Angular JS,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我有一个tabs函数,可以根据值调用不同的href <div ng-repeat="feed in feeds" link="{{feed.link}}" class="TabBody{{$index+1}} HasLink" ng-class="tab === ($index + 1) ? 'active': 'nonActive'" tabs readurlarray='{{myJsonArray}}'> <contents> </div>

我有一个tabs函数,可以根据值调用不同的href

<div ng-repeat="feed in feeds" link="{{feed.link}}" class="TabBody{{$index+1}}   HasLink" ng-class="tab === ($index + 1) ? 'active': 'nonActive'" tabs readurlarray='{{myJsonArray}}'>  
<contents> 
</div> 
在调用管道之前,我需要一种方法来检查我的指令中的link是否有值。有两个链接不是通过管道运行的,因此当我尝试进行调用时,该链接没有任何值,我得到一个错误。我试过这样的方法:

if($('.HasLink').attr('link').length > 0)
它似乎只捕获了第一个链接的长度,在查看其他链接时没有更新

以下是我的范围,包含以下链接:

    $scope.feeds = 
  [ 
    {'link':'712aa10215bb0cf343246d724f4205a', 'name':'SM'},
    {'link':'149ce97c7ba5f03370cc1b111531e44', 'name':'CS'},
    {'name':'FORUM'}, 
    {'name':'CPSUA'}, 
    {'link':'73d3b4e72c4e1890094add0c2a2fee9', 'name':'INTRASPECTUS'},
    {'link':'6f574710e0d562406b28f1dab67fff3', 'name':'SALES'},
    {'name':'LIBRARY'},
    {'link':'e05db886024ddaa70b08ddfbb794875', 'name':'KY'},
    {'link':'5dcd5fd3417519d2dce9e3a66690da6', 'name':'UK'},
    {'link':'27206e0fbd6b4eca9673c3dcb2d4fa7', 'name':'THE FEED'}
  ]
使用过滤器:

请看这里

HTML:


通过将if语句放在定义链接的位置之后,可以很容易地访问该值,并且可以从那里进行比较

这样做,我的attrs.link返回为未定义。在我的回复中,链接是通过functionscope、elem和我相信的属性定义的。在if语句中有没有这样引用我的链接的方法?我添加了包含上述链接的范围。添加scope.link返回时,作用域未定义。让我们使用filterOkay忽略没有链接的提要。我该怎么安排这样的事情呢?
    $scope.feeds = 
  [ 
    {'link':'712aa10215bb0cf343246d724f4205a', 'name':'SM'},
    {'link':'149ce97c7ba5f03370cc1b111531e44', 'name':'CS'},
    {'name':'FORUM'}, 
    {'name':'CPSUA'}, 
    {'link':'73d3b4e72c4e1890094add0c2a2fee9', 'name':'INTRASPECTUS'},
    {'link':'6f574710e0d562406b28f1dab67fff3', 'name':'SALES'},
    {'name':'LIBRARY'},
    {'link':'e05db886024ddaa70b08ddfbb794875', 'name':'KY'},
    {'link':'5dcd5fd3417519d2dce9e3a66690da6', 'name':'UK'},
    {'link':'27206e0fbd6b4eca9673c3dcb2d4fa7', 'name':'THE FEED'}
  ]
.filter('yourFilter', function () {
    return function (feeds) {
        return feeds.filter(function (feed) {
            return feed.link !== undefined;
        });
    }
});


<div ng-repeat="feed in feeds | yourFilter">
    {{feed}}
</div>
  app.directive('tabs', function($http){

    return {
        restrict: "A",
       scope:{
        dlink : "=",
        dname: "="
      },
        link: function(scope, elem, attrs) {
if(scope.dlink) {

          $http({
            url: 'http://pipes.yahoo.com/pipes/pipe.run?_id='+ attrs.link  +'&_render=json',
            method: 'GET'
            }).success(function(data){
              scope.data = data 
            })
        }
}

    }       
})
<div ng-repeat="feed in feeds" link="{{feed.link}}" class="TabBody{{$index+1}}   HasLink" ng-class="tab === ($index + 1) ? 'active': 'nonActive'"
     tabs dlink="feed.link" dname="feed.name" >  

</div> 
app.directive('tabs', function($http){
    return {
        restrict: "A",
        link: function(scope, elem, attrs) {
        if (attrs.link != ''){  
          $http({
            url: 'http://pipes.yahoo.com/pipes/pipe.run?_id='+ attrs.link  +'&_render=json',
            method: 'GET'
            }).success(function(data){
              scope.data = data 
            })
            }
        }  
    }       
})