AngularJS 1.2.13 ng如果不重新评估$resource结果



我在模板中有如下内容:

<div ng if="foo">。。。<div><div ng class="foo&&'foo存在'">。。。<div>

在该范围的控制器中,我有以下内容: $scope.foo = $resource("path/to/resource").query();

资源加载只找到并返回一个简单的JSON数组(通过在Chrome中查看请求进行验证),其他调试显示foo包含该数组,与它应该包含的完全一样。第二个div按预期应用foo-is-present类,但是第一个divng-if仍被评估为false,从而阻止了div的呈现。

这似乎不正确,因为我希望在加载资源的结果后显示第一个div。我在这里错过了什么?

EDIT事实证明,ng-if版本的"truthy"不包括数组,即使数组不是空的。我可以通过添加将条件转换为ng-if="!!foo"来解决这个问题,但这感觉很糟糕。如果有人有更好的见解或解决方案,请分享!

同样在上面的编辑中,但添加为一个答案,因此它更容易被视为(希望)有用的解决方法。


事实证明,如果"truthy"的版本不包括数组,即使数组不是空的。我可以通过添加将条件转换为ng if="!!foo"来解决这个问题,但这感觉很糟糕。如果有人有更好的见解或解决方案,请分享!

您使用的是什么版本的AngularJS?

我使用1.2.10和:

$scope.foo = []; ng-if="foo"

评估为true。

也许第一个div不在包含foo的控制器的范围内?

相关内容

最新更新