我有一个指令,我想使用属性来控制他的行为。它是一个导航栏,应该有一个活动项目,具体取决于属性的值
<navbar active="programs"></navbar>
指令的模板
<div class="navbar span12">
<div class="navbar-inner">
<div class="container-fluid">
<a class="brand" href="#">Loopz</a>
<ul class="nav">
<li ng-class="{active: isActive('programs')}"><a href="#/programs">Programs</a></li>
<li ng-class="{active: isActive('shop')}"><a href="#/shop">Shop</a></li>
<li ng-class="{active: isActive('profile')}"><a href="#/profile">Profile</a></li>
</ul>
</div>
</div>
该类active
应该放在具有匹配active
属性值的元素上。应该评估模板,并且指令的内部范围应该有一个函数,该函数将active
属性的值与传递给指令的范围方法的值相匹配isActive(value)
该指令
directivesModule.directive('navbar', function(){
return {
restrict: "E",
templateUrl: "partials/navbar.html",
replace: true,
controller: function($scope, $element, $attrs){
$scope.isActive = function(value){
return $attrs.active === value;
}
}
}
});
isActive
正在使用正确的值调用该函数,但该$attrs
对象不包含该active
属性的值。