假設我有在$作用域的變量:
$ scope.smsProfile.Active
可以是真或假,我想就顯示在屏幕上的文本這是價值。例如,如果它是真正的顯示「配置文件激活」,如果它是假顯示「配置文件未激活」。我怎樣才能做到這一點?
我想是這樣的:
{{true:'Profile active', false:'Profile not active'}[$scope.smsProfile.Active]}
,但它不工作。
假設我有在$作用域的變量:
$ scope.smsProfile.Active
可以是真或假,我想就顯示在屏幕上的文本這是價值。例如,如果它是真正的顯示「配置文件激活」,如果它是假顯示「配置文件未激活」。我怎樣才能做到這一點?
我想是這樣的:
{{true:'Profile active', false:'Profile not active'}[$scope.smsProfile.Active]}
,但它不工作。
使用納克隱藏和/或NG- show directive:
<span ng-show="smsProfile.Active">Profile active</span>
<span ng-hide="smsProfile.Active">Profile not active</span>
在控制器添加的方法:
$scope.smsProfile= {
Active: true,
statusText: function() {
return $scope.foo.Active ? 'active' : 'not active';
}
}
然後輸出該方法中的表達或ng-bind
<span>Profile is {{smsProfile.statusText()}}</span>
雖然這是有點陳舊,我想引用此對任何人,在這裏結束了:
How do I display text in view with respect to a boolean variable in the $scope in angularjs?
又如,以下使用三元運營商在上述柱的邏輯如下。此示例基於帶有切換按鈕的複選框列表來選擇全部或無。如果全部選中(長度相同),則選項文本將更改爲選擇無。
{{ (selected.length === options.length) ? 'Select None' : 'Select All'}}
按照這種邏輯,上面也可以寫成像這樣:
{{ (selected.length !== options.length) ? 'Select All' : 'Select None'}}
欲瞭解更多信息,請參閱:從Mozilla的下面的文章:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator
」不是個有沒有辦法做到這一點,而不寫另一個功能? – Para 2013-03-03 16:05:43
可能...但表達指南文檔狀態如下:**無控制流語句** 您無法在表達式中編寫控制流語句。背後的原因是Angular哲學的核心,即應用邏輯應該在控制器中,而不是在視圖中。如果您需要條件語言,循環語句或從視圖表達式中拋出,請將其委託給JavaScript方法。 http://docs.angularjs.org/guide/expression – charlietfl 2013-03-03 16:09:47
另一種選擇可能是使用'ng-switch' – charlietfl 2013-03-03 16:11:47