переключение между видимостью скрытой и видимой не работает

0

Код только кажется спрятанным, когда я нажимаю на элемент, но когда я снова нажимаю элемент, он снова не появляется.

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";

Заранее спасибо:)

  • 1
    Название стиля на самом деле является visibility , поэтому оно должно быть <div style="visibility:{{tog}};">
Теги:
ionic-framework

3 ответа

1
Лучший ответ

Стиль называется 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>
  • 0
    "==" был ответ ... Я буду смотреть в стиле нг на будущее ... Спасибо :)
3

Что относительно директивы ng-show?

<div ng-click="tog = !tog">Click Me!</div>
<div ng-show="tog">Hide Me...Then Show Me Again</div>
  • 0
    Это переключает свойство отображения, а не видимость
  • 0
    Не то же самое, что имеет пользователь, но может быть, это то, что пользователь на самом деле после
Показать ещё 1 комментарий
0

Рабочий Plnkr

Вы также выполняете это с помощью директивы 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
   }

});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню