2013-03-03 61 views
0

假設我有在$作用域的變量:

$ scope.smsProfile.Active

可以是真或假,我想就顯示在屏幕上的文本這是價值。例如,如果它是真正的顯示「配置文件激活」,如果它是假顯示「配置文件未激活」。我怎樣才能做到這一點?

我想是這樣的:

{{true:'Profile active', false:'Profile not active'}[$scope.smsProfile.Active]} 

,但它不工作。

回答

3

使用納克隱藏和/或NG- show directive:

<span ng-show="smsProfile.Active">Profile active</span> 
<span ng-hide="smsProfile.Active">Profile not active</span> 
1

在控制器添加的方法:

$scope.smsProfile= { 
     Active: true, 
     statusText: function() { 
      return $scope.foo.Active ? 'active' : 'not active'; 
     } 
    } 

然後輸出該方法中的表達或ng-bind

<span>Profile is {{smsProfile.statusText()}}</span> 

DEMO:http://jsfiddle.net/zpfq4/

+0

」不是個有沒有辦法做到這一點,而不寫另一個功能? – Para 2013-03-03 16:05:43

+0

可能...但表達指南文檔狀態如下:**無控制流語句** 您無法在表達式中編寫控制流語句。背後的原因是Angular哲學的核心,即應用邏輯應該在控制器中,而不是在視圖中。如果您需要條件語言,循環語句或從視圖表達式中拋出,請將其委託給JavaScript方法。 http://docs.angularjs.org/guide/expression – charlietfl 2013-03-03 16:09:47

+0

另一種選擇可能是使用'ng-switch' – charlietfl 2013-03-03 16:11:47

1

雖然這是有點陳舊,我想引用此對任何人,在這裏結束了:

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

相關問題