Próbuję pracować, jak dodać klasę za pomocą ngClick. Wgrałem swój kod na plunker Kliknij tutaj . Patrząc na dokumentację kątową, nie mogę dowiedzieć się, jak należy to zrobić. Poniżej znajduje się fragment mojego kodu. Czy ktoś może poprowadzić mnie we właściwym kierunku
<div ng-show="isVisible" ng-class="{'selected': $index==selectedIndex}" class="block"></div>
Kontroler
var app = angular.module("MyApp", []);
app.controller("subNavController", function ($scope){
$scope.toggle = function (){
$scope.isVisible = ! $scope.isVisible;
};
$scope.isVisible = false;
});
javascript
angularjs
angularjs-ng-click
ng-class
NewKidOnTheBlock
źródło
źródło
Odpowiedzi:
Wystarczy powiązać zmienną z dyrektywą „ng-class” i zmienić ją w kontrolerze. Oto przykład, jak to zrobić:
Oto przykład pracy na jsFiddle
źródło
class
jest słowem zastrzeżonym, użyjclassName
zamiast niego, kompilator YUI nie uda się go zminifikować.Chcę dodać lub usunąć „
active
” klasę w moim kodu dynamicznie nang-click
tu co mam zrobić.źródło
The only appropriate use of ngInit is for aliasing special properties of ngRepeat, as seen in the demo below. Besides this case, you should use controllers rather than ngInit to initialize values on a scope.
Można to zrobić w prosty i przejrzysty sposób za pomocą samych dyrektyw.
źródło
możesz to również zrobić w dyrektywie, jeśli chcesz usunąć poprzednią klasę i dodać nową
aw Twoim szablonie:
źródło
Masz dokładnie rację, wszystko, co musisz zrobić, to ustawić selectedIndex w swoim ng-click.
Oto jak zaimplementowałem zestaw przycisków, które zmieniają widok ng i podświetla przycisk aktualnie wybranego widoku.
i to w moim kontrolerze.
źródło
źródło
Skorzystałem z powyższej sugestii Zacka Argyle'a, aby uzyskać to, co uważam za bardzo eleganckie:
CSS:
HTML:
źródło
Jeśli wolisz rozdzielenie problemów, tak aby logika dodawania i usuwania klas zachodziła na kontrolerze, możesz to zrobić
kontroler
HTML
CSS
źródło
Nie mogę uwierzyć, jak skomplikowane jest to dla wszystkich. W rzeczywistości jest to bardzo proste. Po prostu wklej to do swojego html (bez dyrektywy / zmiany kontrolera - "bg-info" to klasa ładowania początkowego):
źródło
dla formularzy reaktywnych -
Plik HTML
Plik TS
źródło