Угловой 1.5
Я создаю меню, которое при ng-click = я получаю переменную, а затем при установке ng-class этой переменной в значение true для меню и содержимого.
Цель состоит в том, чтобы добавить / удалить активный класс в родительский и в контентный div.
Не могу понять это
<div ng-controller="myCtrl">
<ul>
<li class="animate" ng-class="{activelist: fonts ==!hidden }">
<a ng-click="activeMenu('fonts')" class="nav-icon">
menu font
</a>
</li>
<li class="animate" ng-class="{activelist: edit ==!hidden }">
<a ng-click="activeMenu('edit')" class="nav-icon">
menu edit
</a>
</li>
<ul>
<div class="">
<div class="fonttext" ng-class="{activelist: fonts ==!hidden }"></div>
<div class="edittext" ng-class="{activelist: edit ==!hidden }" ></div>
</div>
</div>
<script>
var myapp = angular.module('app', []);
myapp.controller('myCtrl', function($scope){
$scope.activeMenu = function (menuvar){
//getting the variable that gets passed via func
$scope.variable = menuvar;
// set the variable to be true no working
$scope.menuvar = true;
}
});
</script>
0
Chris Tarasovs
8 Янв 2017 в 00:37
1 ответ
Лучший ответ
Вы можете установить переменную прямо в ng-click
на true
. Затем эту переменную можно использовать в ng-class
для динамического добавления или удаления классов. Вот пример:
<li class="animate" ng-class="{'activelist': fonts }">
<a ng-click="fonts = !fonts" class="nav-icon"></a>
</li>
<li class="animate" ng-class="{'activelist': edit }">
<a ng-click="edit = !edit" class="nav-icon"></a>
</li>
Вы также можете установить переменную в контроллере:
HTML:
<li class="animate" ng-class="{'activelist': menu.fonts }">
<a ng-click="switchMenu('fonts')" class="nav-icon"></a>
</li>
<li class="animate" ng-class="{'activelist': menu.edit }">
<a ng-click="switchMenu('edit')" class="nav-icon"></a>
</li>
Контроллер:
$scope.menu = {};
$scope.switchMenu = function(selectedMenu) {
$scope.menu[selectedMenu] = !$scope.menu[selectedMenu];
};
1
ssc-hrep3
8 Янв 2017 в 01:26
Похожие вопросы
Новые вопросы
angularjs
Используйте для вопросов об AngularJS (1.x), JavaScript-фреймворке с открытым исходным кодом. НЕ используйте этот тег для Angular 2 или более поздних версий; вместо этого используйте тег [angular].
ng-repeat
и по-прежнему управлять им непосредственно в HTML. Я бы рекомендовал поместить эти значения в переменную области видимости, чтобы предотвратить конфликты имен в области действия контроллера.