Angularjs 检查指令的一部分是否有值-Angular JS
我有一个tabs函数,可以根据值调用不同的hrefAngularjs 检查指令的一部分是否有值-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>
<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
})
}
}
}
})