如何在AngularJS中为表达式添加条件

时间:2012-11-26 21:08:37

标签: angularjs

我正试图在Angular中做这样的事情:

您的搜索结果为{{searchResults.iTotalRecords> 0,0}}结果。

当然这不起作用,但你明白了。如果我的对象是一个整数,我如何检查该值是否大于零,或者将其设置为0?

感谢。

2 个答案:

答案 0 :(得分:5)

如果您只想更改数据的表示,而不更改应用程序中的基础(实际)数据,则自定义角度过滤器非常适合此目的。

以下是您的用例的示例过滤器。您可以在过滤器中添加任何其他逻辑。

<强> 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文档:Understanding Angular Filters

答案 1 :(得分: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,了解更多高级案例。