0

テンプレートに次のようなものがあります。

<div ng-if="foo">
   ...
</div>
<div ng-class="foo && 'foo-is-present'">
   ...
</div>

このスコープのコントローラーには、次のものがあります。 $scope.foo = $resource("path/to/resource").query();

リソースは find だけをロードし、単純な JSON 配列 (Chrome でリクエストを監視して確認) を返し、fooその配列を含む他のデバッグ ショーを正確に表示します。2 番目は期待どおりにクラスをdiv適用しますが、最初のクラスはまだfalse に評価されているため、レンダリングできません。foo-is-presentdivng-ifdiv

divリソースの結果がロードされたら最初に表示されるようにしたいので、これは正しくないようです。ここで何が欠けていますか?

編集配列がng-if空でなくても、「真実」のバージョンには配列が含まれていないことがわかりました。条件を に変更することでこれを回避できましたng-if="!!foo"が、これはハッキーに感じます。誰かがより良い洞察や解決策を持っている場合は、共有してください!

4

2 に答える 2

0

AngularJS のどのバージョンを使用していますか?

私は1.2.10を使用しています:

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

true に評価されます。

おそらく、最初の div は foo を含むコントローラーのスコープ内にありませんか?

于 2014-02-26T21:50:06.873 に答える