Да, вы можете. Но это хорошая практика изолировать логику от HTML-документа насколько это возможно.
Например.
App.js
app.controller("PanelController", function() {
this.tab = [youTabId]; // Set a tab by default on load.
this.selectTab = function(setTab) {
this.tab = setTab;
};
this.isSelected = function(checkTab) {
return this.tab === checkTab;
};
});
В HTML на вкладке раздела, добавить контроллер с ng-controller
как этот ng-controller="PanelController as panel"
.
Для каждого <li>
добавьте ng-class
вот так ng-class="{active : panel.isSelected([yourTabId])}"
.
И для каждой ссылки <a>
a ng-click
, ng-click="panel.isSelected([youTabId])"
.
По этому пути, на вашем <div>
, чтобы показать, когда нажмите на вкладку, добавьте ng-show="panel.isSelected([yourTabId])"
С этим, ваш код чист и адаптируется.
да .. они могут. – raj
Очень субъективный, но, вероятно, контроллер для чего-либо общего для всех вкладок, а затем другого контроллера, специфичного для каждой вкладки. Также помните, что различные части вашего DOM могут быть связаны с разными экземплярами одного и того же контроллера. – Duncan