三元运算符Angular JS

时间:2016-12-26 13:50:52

标签: jquery angularjs ternary

我的控制器中有$scope.lineData[0].line。我想检查$scope.lineData[0] != undefined,如果是,那么$scope.lineData[0].line只需要添加"0"值。如何用angular JS做到这一点?

任何人都可以帮我这样做吗? 提前谢谢..

3 个答案:

答案 0 :(得分:1)

这应该这样做:

{{ $scope.lineData[0] ? $scope.lineData[0].line : "0" }}

<强>更新

您也可以这样做:

{{ $scope.lineData[0].line || "0" }}

Angular将从左到右合并,这是第一个非null /未定义的值。

答案 1 :(得分:1)

在模板中,我们会这样做

{{ lineData[0] ? lineData[0].line : "0" }}

在Controller中,我们将会做

var some_value = $scope.lineData[0] ? $scope.lineData[0].line : "0";

答案 2 :(得分:0)

您可以根据您的用例使用它,其中很少可能是:

1)ex。 <input ng-value="getLine()" />

2)ex。 <div>{{lineData[0] ? lineData[0].line : "0"}}</div>

3)前。在Controller中,var value = $scope.lineData[0] ? $scope.lineData[0].line : "0";

HTML:

<div ng-controller="MyCtrl">
    <input ng-value="getLine()" />
    <div>{{lineData[0] ? lineData[0].line : "0"}}</div>
</div>

JavaScript:

var myApp = angular.module('myApp',[]);


function MyCtrl($scope) {

    $scope.lineData = [{
        line : 3,
    }];

    $scope.getLine = function() {
        return $scope.lineData[0] ? $scope.lineData[0].line : "0";
    }

}

JSFiddle: http://jsfiddle.net/nikdtu/v6ezygy2/