私はAngularで次のようなことをしようとしています:
検索で {{ searchResults.iTotalRecords > 0 , 0 }} 件の結果が見つかりました。
確かにこれはうまくいきませんが、アイデアはわかります。オブジェクトが整数の場合、値が 0 より大きいかどうかを確認したり、0 に設定したりするにはどうすればよいですか?
ありがとう。
私はAngularで次のようなことをしようとしています:
検索で {{ searchResults.iTotalRecords > 0 , 0 }} 件の結果が見つかりました。
確かにこれはうまくいきませんが、アイデアはわかります。オブジェクトが整数の場合、値が 0 より大きいかどうかを確認したり、0 に設定したりするにはどうすればよいですか?
ありがとう。
カスタム 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 フィルターについて
これを行うには、$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>