如何使用ng-if来testing一个variables是否被定义
有没有一种方法可以使用ng-if
来testing一个variables是否被定义,而不仅仅是真的吗?
在下面的示例( 实时演示 )中,HTML仅显示红色项目的运费,因为item.shipping
既定义了非零值。 我也想显示一个蓝色项目(发货定义,但零)的成本,但不是为绿色项目(航运未定义)。
JavaScript的:
app.controller('MainCtrl', function($scope) { $scope.items = [ { color: 'red', shipping: 2, }, { color: 'blue', shipping: 0, }, { color: 'green', } ]; });
HTML:
<body ng-controller="MainCtrl"> <ul ng-repeat='item in items'> <li ng-if='item.color'>The color is {{item.color}}</li> <li ng-if='item.shipping'>The shipping cost is {{item.shipping}}</li> </ul> </body>
我试着做ng-if='angular.isDefined(item.shipping)'
,但没有奏效。 也不ng-if='typeof(item.shipping) !== undefined'
。
尝试这个:
item.shipping!==undefined
我编辑你的重拳,包括ABOS的解决scheme。
<body ng-controller="MainCtrl"> <ul ng-repeat='item in items'> <li ng-if='item.color'>The color is {{item.color}}</li> <li ng-if='item.shipping !== undefined'>The shipping cost is {{item.shipping}}</li> </ul> </body>
plunkerFork
你仍然可以使用angular.isDefined()
你只需要设置
$rootScope.angular = angular;
在“运行”阶段。
查看更新plunkr: http ://plnkr.co/edit/h4ET5dJt3e12MUAXy1mS?p=preview