2014-10-10 12 views
2
<h4 class="changecolor">{{driver.name}}&nbsp;</h4> 
<h4 class="changecolor" ng-show="!driver.name">{{driver.officeEmail}}&nbsp;</h4> 

如果driver.name不可用,则显示driver.officeEmailAngular.js ternery声明

是存在的,实现这个在一行中使用三元语句的方法吗?

回答

5

如果你只是想用一种结合,尝试:

<h4 class="changecolor">{{driver.name || driver.officeEmail}}</h4> 

这就是所谓的short-circuit evaluation。如果driver.name未定义,则将显示driver.officeEmail

+0

我的朋友,非常感谢。这个解决方案帮助了我。 – Jackal 2014-10-10 17:21:29

1

@quantumwannabe的答案是有效的,对于这个特殊的用例来说是一个更好的解决方案,但是OP询问了从1.2.x版本开始的三元操作。

angular.module("app", []) 
 
    .controller('appCtrl', ['$scope', 
 
    function($scope) { 
 
     $scope.driver = {email : "test"}; 
 
    } 
 
    ]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app="app"> 
 
    <div ng-controller="appCtrl"> 
 
    <h4 class="changecolor">{{driver.name ? driver.name : driver.email}}</h4> 
 
    </div> 
 
</div>

1
<h4 class="changecolor">{{(driver.name) ? driver.name : driver.officeEmail}}&nbsp;</h4> 

这为我工作。

+0

你不需要()周围的driver.name它将工作没有它,就像我下面的例子 – 2014-10-10 23:21:00