2017-02-27 7 views
0

式のinを次のように使用しようとしています。角度式 - 式の式

二重括弧で式内の式を解決できますか?

<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なステートメント OR三元発現によって

EXを経由して評価することができます:このようにNG-のinitを使用して回避するためのベストプラクティスである{{10 > 20 ?"Yup":"No"}}

0

。コントローラ内部の変数初期化はすべて処理する必要があります。また、任意の式を角度で評価しようとするべきではありません、あなたは何をしようとしているのか知っている必要があります。あなたが達成しようとしていることについてより多くの情報を提供すれば、それを手助けすることができます。

つまり、$evalを使用して、任意の文字列を角度式として評価できます。

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

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

+0

感謝の融合を、これをチェックしてください、私は説明する-INITをngの私が直面している問題は、実際のコードでは何をしようとしているのですか?データはhttp getサービスのコントローラから来ています。式 –

+0

の式を解決していません。おそらく、サービスからデータを受け取ったときにロジックを実行するのが最善でしょう。 – ChrisG

+0

問題は、私はディレクティブの属性を使用しており、式の式でng-classの式を解決しようとしています。ng-class = {'active':{{sal> 10}}} –