我有一個帶有幾個圖標的菜單,當我點擊其中一個圖標時,更改圖標,當我再次點擊同一圖標時,返回到原始狀態,但如果我點擊在一個,然後我點擊另一個,第一個圖標應該回到它的原始狀態,但它不,我不知道爲什麼它沒有被修改。用app.directive更改圖標AngularJS
的HTML是這樣的:
<div id="navbar" class="navbar-collapse collapse" ng-controller="customerInformationController">
<ul class="nav navbar-nav navbar-left">
<li>
<menuico linkTo="main" imageDefault="ico_menu_off.png" />
</li>
<li>
<menuico linkTo="customerSearch" imageDefault="ico_search_off.png" />
</li>
<li>
<menuico linkTo="#" imageDefault="ico_user_off.png" />
</li>
</ul>
<img src="img/logo_santander.png" class="logo" />
<ul class="nav navbar-nav navbar-right">
<li class="navbar-manager">{{nombreGestor}}</li>
<li><a ng-click="closeTabs();" class="close-session"><img src="img/ico_closesession.png" /></a></li>
</ul>
</div>
我使用AngularJS指令做出這樣的改變圖標。該角代碼:
app.directive('menuico', function() {
return {
restrict: 'E',
replace:true,
scope: {},
template: '<a href="#{{route}}"><img src="img/{{image}}" /></a>',
link: function(scope, elem, attrs) {
var active = false;
var defaultRoute = "";
var activeIcon = "ico_close.png";
scope.image = attrs.imagedefault;
scope.route = attrs.linkto;
elem.bind("click", function() {
active = !active;
if(active) {
scope.route = defaultRoute;
scope.image = activeIcon;
} else {
scope.route = attrs.linkto;
scope.image = attrs.imagedefault;
}
});
}
};
});
我需要什麼,例如,是,如果我在「ico_search_off.png」點擊,這種變化爲「ico_close.png」,如果我在「ico_user_off現在點擊。 png「,這個變成了」ico_close.png「,第一個變成了原來的狀態,也就是」ico_search_off.png「,但是第一個不變,並且保持當前狀態
你知道我在哪裏可以看到一個使用角度服務的例子嗎?謝謝 – derek
嘗試查看Angular UI github代碼頁。他們做這種事很多。 – jonhobbs
順便說一下,Derek,自從你加入這個網站後,你已經詢問了7個問題,並且你還沒有給他們任何一個提供任何讚揚或正確的答案。如果你甚至不能點擊一個小箭頭或打勾,人們不會幫助你。 – jonhobbs