У меня есть некоторые данные, которые представлены аналогично поисковой системе (список ссылок на разные источники):
Первая единица данных Show Detail
Вторая единица данных Show Detail
Каждая единица данных имеет идентификатор (упорядоченный номер) и некоторую информацию, которая должна быть скрыта по умолчанию. Каждая единица данных имеет кнопку, которая показывает эту информацию. Кнопка вызывает функцию ShowHide. У меня проблема, потому что эта функция не работает с несколькими кнопками. Информация о единице данных должна отображаться при нажатии кнопки (данные определяются динамически).
HTML:
<div ng-repeat="x in results">
{{ x.orderNumber + '. ' + x.namePackage + ' ' + x.size + ' Bytes '}} <a href={{x.link}}>Download</a>
<input type="button" value="Show detail" ng-click="ShowHide(x.orderNumber)" />
<div ng-show = "IsVisible[orderedNumber]">response</div>
</div>
script.js:
$scope.ShowHide = function (orderedNumber) {
//This will hide the DIV by default.
$scope.IsVisible[orderedNumber] = false;
$scope.ShowHide = function (orderedNumber) {
//If DIV is visible it will be hidden and vice versa.
$scope.IsVisible[orderedNumber] = $scope.IsVisible[orderedNumber] ? false : true;
}
};
Как создать список кнопок с помощью AngularJS?
Просто используйте свойство в var вместо управления массивом следующим образом:
ng-click="ShowHide(x)"
ng-show = "x.visible"
$scope.ShowHide = function (item) {
item.visible = !item.visible
};
EDIT: Если в функции Showhide больше нет логики, вы также можете сделать это:
ng-click="x.visible = !x.visible"