如何在AngularJS中向表达式添加条件
我试着做一些像这样的事情: 您的搜索找到{searchResults.iTotalRecords>0,0}个结果 当然这不管用,但你明白了。如果我的对象是整数,我如何检查该值是否大于零,或者将其设置为0如何在AngularJS中向表达式添加条件,angularjs,Angularjs,我试着做一些像这样的事情: 您的搜索找到{searchResults.iTotalRecords>0,0}个结果 当然这不管用,但你明白了。如果我的对象是整数,我如何检查该值是否大于零,或者将其设置为0 谢谢。要做到这一点,您只需在$scope上使用一个函数: app.controller('MainCtrl', function($scope) { $scope.foo = function() { return $scope.searchResults.iTotalR
谢谢。要做到这一点,您只需在$scope上使用一个函数:
app.controller('MainCtrl', function($scope) {
$scope.foo = function() {
return $scope.searchResults.iTotalRecords > 0 ? $scope.searchResults.iTotalRecords : 0;
};
});
在您的标记中:
<span>{{foo()}}</span>
{{foo()}
编辑:100%标记方式
<span ng-show="searchResults.iTotalRecords > 0">{{searchResults.iTotalRecords}}</span>
<span ng-show="searchResults.iTotalRecords <= 0">0</span>
{{searchResults.iTotalRecords}
0
您可能还需要检查和查看更高级的情况,如此。如果您只想更改数据的表示,而不更改应用程序中的基础(真实)数据,则自定义角度过滤器非常适合此用途 下面是针对您的用例的示例过滤器。您可以在过滤器中放入任何其他逻辑 HTML:
<p>Your search found {{searchResults.iTotalRecords | resultCountFilter}} results.</p>
angular.module('app', []).filter('resultCountFilter', function () {
return function (resultCount) {
return resultCount > 0 ? resultCount : 0;
};
});
下面是一个JSFIDLE:
AngularJS过滤器上的文档:谢谢Blesh,但如果可能的话,我正在尝试在标记中实现它。有办法吗?抱歉,布莱什,但这不起作用。最终使用了Aleross建议的过滤器。无论如何谢谢你!这本应该奏效的。你有一把小提琴坏了吗?(我并不特别关心你所要求的要点,我更感兴趣的是正确性)我认为你所要求的。我觉得过滤器的答案(虽然有效)有点做作。谢谢Aleross,但我尽量避免为此专门编写控制器,因为我认为它应该由表示层处理。最终使用过滤器,效果很好,谢谢Aleross!