Код только кажется спрятанным, когда я нажимаю на элемент, но когда я снова нажимаю элемент, он снова не появляется.
HTML (AngularJS)
<div ng-click="showIt();">Click Me!</div>
<div style="visible:{{tog}};">Hide Me...Then Show Me Again</div>
контроллер:
$scope.showIt=function(){
if($scope.tog="visible"){
$scope.tog="hidden";
}
else{
$scope.tog="visible";
}
}
$scope.tog="visible";
Заранее спасибо:)
Стиль называется visibility
также в if
вам нужно использовать ==
not =
.
Но лучшим решением будет использование директивы ng-style
или использование решения на основе класса
var app = angular.module('my-app', [], function() {})
app.controller('AppController', function($scope) {
$scope.showIt = function() {
if ($scope.tog.visibility == "visible") {
$scope.tog.visibility = "hidden";
} else {
$scope.tog.visibility = "visible";
}
}
$scope.showIt2 = function() {
$scope.hidden = !$scope.hidden;
}
$scope.tog = {
visibility: "visible"
};
$scope.hidden = false;
})
.hidden {
visibility: hidden;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="my-app">
<div ng-controller="AppController">
<div ng-click="showIt()">Click Me!</div>
<div ng-style="tog">Hide Me...Then Show Me Again</div>
<hr />
<div ng-click="showIt2()">Click Me!</div>
<div ng-class="{hidden: hidden}">Hide Me...Then Show Me Again</div>
</div>
</div>
Что относительно директивы ng-show
?
<div ng-click="tog = !tog">Click Me!</div>
<div ng-show="tog">Hide Me...Then Show Me Again</div>
Вы также выполняете это с помощью директивы ng-if
:
<div ng-click="showIt();">Click Me!</div>
<div ng-if="tog">Hide Me...Then Show Me Again</div>
JavaScript:
angular.module('myApp', [])
.controller('MyController', function($scope) {
$scope.tog = true;
$scope.showIt=function(){
$scope.tog=!$scope.tog
}
});
visibility
, поэтому оно должно быть<div style="visibility:{{tog}};">