2

私はAngularで次のようなことをしようとしています:

検索で {{ searchResults.iTotalRecords > 0 , 0 }} 件の結果が見つかりました。

確かにこれはうまくいきませんが、アイデアはわかります。オブジェクトが整数の場合、値が 0 より大きいかどうかを確認したり、0 に設定したりするにはどうすればよいですか?

ありがとう。

4

2 に答える 2

5

カスタム Angular フィルターは、アプリケーションの基になる (実際の) データを変更せずに、データの表示のみを変更したい場合に、この目的に適しています。

以下は、ユースケースのフィルターの例です。フィルターに他のロジックを入れることができます。

HTML:

<p>Your search found {{searchResults.iTotalRecords | resultCountFilter}} results.</p>

Javascript:

angular.module('app', []).filter('resultCountFilter', function () {
    return function (resultCount) {
        return resultCount > 0 ? resultCount : 0;          
    };
});​

ここに JSFiddle があります: http://jsfiddle.net/alexross/ZN87E/

フィルターに関する AngularJS ドキュメント: Angular フィルターについて

于 2012-11-26T21:44:38.680 に答える
4

これを行うには、$scope で関数を使用するだけです。

app.controller('MainCtrl', function($scope) {
    $scope.foo = function() {
        return $scope.searchResults.iTotalRecords > 0 ? $scope.searchResults.iTotalRecords : 0;
    };
});

そしてあなたのマークアップで:

<span>{{foo()}}</span>

編集: 100% マークアップの方法...

<span ng-show="searchResults.iTotalRecords > 0">{{searchResults.iTotalRecords}}</span>
<span ng-show="searchResults.iTotalRecords <= 0">0</span>

このようなより高度なケースについては、 ngSwitchngHideを確認することもできます。

于 2012-11-26T21:17:11.693 に答える