这可能是不可能的,但是如果没有任何数据我会隐藏一个列表然后希望显示这个列表,如果有什么东西被推到它。
这是一个有效的例子 - 理论上,“No todos found”消息应该消失,然后出现一个列表。我在Add按钮下面添加了$ scope.todos转储,以显示$ scope更新 http://plnkr.co/edit/4hwkwn?p=preview
我可以在add()调用后告诉DOM更新吗?
答案 0 :(得分:1)
ng-show
显示值是真实的,在示例中,您传递的是一个空数组。虽然数组是空的,但它是一个truthy值,这意味着当在布尔上下文中求值时,该值强制为true。
如果您希望在列表为空时隐藏列表,则可以执行ng-show="todos.length"
评估为0
等于false
并因此隐藏该元素。同样的逻辑适用于ng-hide
。
答案 1 :(得分:0)
根据todos
列表是否为空隐藏或显示:
<p ng-hide="todos.length >0">No todos found.</p>
<ul ng-show="todos.length > 0">
<li ng-repeat="todo in todos">{{todo.title}}</li>
</ul>
答案 2 :(得分:0)
您可以为条件创建表达式以显示或隐藏项目,例如您可以这样写:
<ul ng-show="todos.length >= 1">
<li ng-repeat="todo in todos">{{todo.title}}</li>
</ul>
有关表达式的更多信息:https://docs.angularjs.org/guide/expression