我在列表中刷新了我的li元素:
<ul ng-init="visible = true" ng-show="visible">
<li ng-repeat="suggestion in results"
ng-mouseover="changeSearchValue(suggestion)"
ng-click="visible = false">
{{suggestion}}
</li>
</ul>
我想在点击li时隐藏我的列表(ul),但我无法使其正常工作......这是一种不好的方法吗?
答案 0 :(得分:3)
ng-repeat
为每次迭代创建一个范围,因此visible
元素中的ul
变量不一定与每个li
元素中的变量相同。从li
元素调用父作用域的变量应该修复它:
<ul ng-init="visible = true" ng-show="visible">
<li ng-repeat="suggestion in results"
ng-mouseover="changeSearchValue(suggestion)"
ng-click="$parent.visible = false"> <--this is the key
{{suggestion}}
</li>
</ul>
您最初写的内容可以让您分别隐藏每个li
元素。
在此处查看差异:http://jsfiddle.net/oxda3aes/