如何使用ng-click一个li来隐藏它的ul父级

时间:2014-10-01 12:39:08

标签: angularjs

我在列表中刷新了我的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),但我无法使其正常工作......这是一种不好的方法吗?

1 个答案:

答案 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/