Я пытаюсь скрыть ввод, я делаю это таким образом:
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 раз те же функции. У вас есть идея, как решить более эффективно?
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>
Применить в концепции нг-класса в поле ввода. Эта переменная класса на основе вашей логики показывает и скрывает все поля ввода.
http://welcometolearntoday.blogspot.in/2015/01/ng-class-using-angularjs-example.html
Вы можете использовать { {X0}} в качестве параметра и оцените значение в функции.
<div class="item" ng-click="showOrNot(this)">
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.