2017-02-27 52 views
0

我正在嘗試在表達式中使用表達式,如下所示。Angular - 表達式在表達式中

是否可以使用雙括號來解析表達式中的表達式?

<body> 

<div ng-app="" ng-init="names=[ 
{name:'Jani',exp:'{{10>20}}'}, 
{name:'Hege',exp:'{{abc>20}}'}, 
{name:'Kai',exp:'{{10==20}}'}]"> 

<p>Looping with objects:</p> 
<ul> 
    <li ng-repeat="x in names"> 
    {{ x.name + ', ' + {{x.exp}} }}</li> 
</ul> 

</div> 

</body> 
+0

檢查了這一點[鏈接答案】(http://stackoverflow.com/questions/23706006/angularjs-expression-in-expression) – ZombieChowder

回答

0

您可以評估通過ng-if statment 或通過三元表達

EX:{{10 > 20 ?"Yup":"No"}}

0

這是爲了避免以這種方式使用NG-INIT最佳實踐。您應該處理控制器內部的所有變量初始化。你也不應該試圖用角度來評估任意表達式,你應該知道你想要做什麼。如果您提供更多關於您想要完成的信息,我們可以提供幫助。

也就是說,您可以使用$eval來評估任意字符串爲角度表達式。

{{ x.name + ', ' + $ctrl.$eval(ex.exp) }} 

https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$eval

+0

感謝融合,我只是NG-INIT解釋問題,我正面臨着,在實際的代碼中,我正在嘗試,數據來自控制器與http獲取服務,我卡在解析表達式內表達式 –

+0

爲什麼你有這些表達式?從服務接收數據時,最好執行邏輯。 – ChrisG

+0

問題是,我正在使用一個指令的屬性,並試圖用表達式在ng-class中解析表達式。類似ng-class = {'active':{{sal> 10}}} –