我有类似的东西在模板下面:
<div ng-if="foo"> ... </div> <div ng-class="foo && 'foo-is-present'"> ... </div>
在控制器此范围内,我有以下几点: $scope.foo = $resource("path/to/resource").query();
资源加载只是查找并返回一个简单的JSON数组(通过在Chrome中查看请求来验证),其他调试显示foo
包含该数组,完全按照它的样子。第二个div
按预期应用foo-is-present
类,但第一个div
仍将其ng-if
评估为false,从而防止div
呈现。
这看起来不太合适,因为我希望第一个div
在资源加载完成后显示出来。我在这里错过了什么?
EDIT原来的‘truthy’ng-if
的版本不包括阵列,即使数组不为空。我能够通过添加将条件转换为ng-if="!!foo"
来解决这个问题,但是这感觉很糟糕。如果有人有更好的见解或解决方案,请分享!
你为什么不把它写成答案并接受它?人们可能会觉得它很有用。 – Shomz
不确定哪个地方比较好。不过,我会这样做的,所以作为解决方法更明显。 – Brian
确实如此,但如果一个数组总是评估为false,那么对于所有角度用户来说这是一个有趣的点(尽管很难相信,我会自己测试它)。 – Shomz