web-dev-qa-db-ja.com

AngularJSng-ifステートメントで ">"コンパレータを使用する方法

HTMLのng-ifで「より大きい」コンパレータを使用することは可能ですか?問題は、 ">"記号がHTMLタグを途中で閉じることです。

例これ:<div ng-if="foo>0" class="bar"> (HTML STUFF) </div>

次のように読み取られます:<div ng-if="foo"> (0 class="bar"> HTML STUFF) </div>

Ng-if = "foo!= 0"を使用してこれを回避することになりましたが、代わりにより小さいコンパレータを使用することもできますが、何らかの理由で絶対により大きい記号を使用する必要がある場合に備えて、興味がありました。または、おそらくこのロジックを、ビューではなくコントローラー内などの別の場所に移動する必要がありますか?

編集1ですから、コンパレータ自体は問題ではなく、コードで何かが起こっているようです。奇妙なことに、コンパレータの前後にスペースがある場合は機能しますが、スペースがない場合は機能しません。それが何かを意味するなら、私もangular 1.3.15を使用しています。

<div class="paginate" ng-if="list.total > 0">機能

<div class="paginate" ng-if="list.total>0"> 動作しません

7
krhithm

これは、>記号の使用例です。これは正常に機能します。

<div ng-if="myvariable.length > 2">

</div>
11
user1532669

スコープでメソッドを作成し、条件のロジックを抽象化することをお勧めします。ビジネスルールは拡大および変更される可能性があります。別の方法を使用すると、テンプレートを変更する必要はありません。

// in controller
$scope.isValidFoo = function () {
    return $scope.foo > 0;
}

// in template
<div ng-if="isValidFoo()">...</div>
5
Artem K.