Я пытаюсь скрыть ввод, я делаю это таким образом:

Javascript:

$scope.show= true;
$scope.showOrNot= function () {
    $scope.show= !$scope.show;
}

В моем HTML:

<div class="item" ng-click="showOrNot()">
     <p><b>blablabla</b></p>
</div>
<li class="item" ng-hide="show">
    <input type="text">
</li>

Функция showOrNot вызывается, когда я нажимаю в div перед определенным вводом.

Если у меня есть 20 входов на моей странице, я должен написать в своем javascript 20 раз те же функции. У вас есть идея, как решить более эффективно?

0
anubis 13 Дек 2016 в 10:38

3 ответа

Лучший ответ

Вы можете передать ключ в функцию showOrNot и сопоставить ключ с объектом show / hide в области видимости:

  angular.module('app', [])
  .controller('exampleController', function($scope) {

    $scope.show = {};
    $scope.showOrNot = function(key) {
      $scope.show[key] = !$scope.show[key];
    };

  });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>

<div ng-app="app">

  <div ng-controller="exampleController">

    <div class="item" ng-click="showOrNot('item')">
      <p><b>blablabla 1</b>
      </p>
    </div>
    <li class="item" ng-hide="show.item">
      <input type="text">
    </li>

    
    
    <div class="item" ng-click="showOrNot('item2')">
      <p><b>blablabla 2</b>
      </p>
    </div>
    <li class="item" ng-hide="show.item2">
      <input type="text">
    </li>
    
    
    <div class="item" ng-click="showOrNot('item3')">
      <p><b>blablabla 3</b>
      </p>
    </div>
    <li class="item" ng-hide="show.item3">
      <input type="text">
    </li>
    
  </div>

</div>
4
Robba 13 Дек 2016 в 08:19

Применить в концепции нг-класса в поле ввода. Эта переменная класса на основе вашей логики показывает и скрывает все поля ввода.

http://welcometolearntoday.blogspot.in/2015/01/ng-class-using-angularjs-example.html

0
Sathiyaraj 13 Дек 2016 в 07:46

Вы можете использовать { {X0}} в качестве параметра и оцените значение в функции.

<div class="item" ng-click="showOrNot(this)">
0
Nina Scholz 13 Дек 2016 в 07:41