Я пытаюсь показать кнопку if isNotRegistered == true
и скрыть вложенные ссылки. И если это false
спрячьте кнопку и покажите ссылки. Почему в моем плункере скрываются все ссылки? http://plnkr.co/edit/XpwWyYKpbeUASUJpnDa0?p=preview
Я предполагаю, что имена превратятся в ссылки... Проверьте это... Пожалуйста, исправьте меня, если я его неправильно истолковал.
angular.module("App", [])
.controller("Ctrl", function($scope){
$scope.list = [
{item: '1',
isNotRegistered: false,
children: [
{name: '11'},
{name: '12'}
]
},
{item: '2',
isNotRegistered: true,
children: [
{name: '21'},
{name: '22'}
]
}
];
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="App" ng-controller="Ctrl">
<ul>
<li ng-repeat="item in list">{{item.item}}
<ul>
<li ng-if="item.isNotRegistered" ng-repeat="child in item.children">{{child.name}}</li>
<button ng-if="!item.isNotRegistered">Click</button>
</ul>
</li>
</ul>
</div>
замените это
<li ng-repeat="item in list">{{item.item}}
<ul>
<li ng-if="!item.isNotRegistered" ng-repeat="item in item.children">{{item.name}}</li>
<button ng-if="item.isNotRegistered">Click</button>
</ul>
</li>
из этого
<li ng-repeat="item in list">{{item.item}}
<ul>
<li ng-if="!item.isNotRegistered" ng-repeat="newItems in item.children">{{newItems.name}}</li>
<button ng-if="item.isNotRegistered">Click</button>
</ul>
</li>
проблема была ранее для обоих повторений ng вы присваиваете значение элементу. поэтому возникла путаница
Вместо этого используйте ng-show и избегайте использования имени той же переменной на разных уровнях. У меня есть первый элемент li как Pitem. Ниже вы работаете. Всего наилучшего
<!DOCTYPE html>
<html ng-app="App">
<head>
<script data-require="[email protected]" data-semver="1.5.5" src="https://code.angularjs.org/1.5.5/angular.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body ng-controller="Ctrl">
<ul>
<li ng-repeat="Pitem in list">{{Pitem.item}}
<ul>
<li ng-show="!Pitem.isNotRegistered" ng-repeat="item in Pitem.children">{{item.name}}</li>
<button ng-show="Pitem.isNotRegistered">Click</button>
</ul>
</li>
</ul>
</body>
</html>
Пожалуйста, отметьте как ответ, если это решает ваш вопрос