2016-08-26 12 views
1

私は角度の値最初の時間に基づいて、いくつかの文を作るためにしようとしていますが、私はチェックし、私は要素のうちの2つを持っている方法のようにいけない、これは私が角度短い条件文

<h4 class="modal-title" ng-show="::model.trainingModel.name !== undefined">{{'EDIT_TRAINING' | translate}}</h4> 
<h4 class="modal-title" ng-show="::model.trainingModel.name === undefined">{{'NEW_TRAINING' | translate}}</h4> 

がそれです持っているものです誰かがそれをもっと短くするのを助けることができるでしょうか?

+1

新しいテンプレート変数を含めるのことができます'::'と三項 ''をバインドするのに一度だけ使うのですか? : '演算子を同じステートメントに入れる必要があります。コントローラに設定しない限り、これを1行にする方法はありません。 – Claies

答えて

1
<h4 class="modal-title">{{(model.trainingModel.name ? 'EDIT_TRAINING' : 'NEW_TRAINING') | translate}}</h4> 
+0

しかし、これは:: –

+0

初めてのみたいなので、 ':: model.trainingModel.name'を使うことができます。上記のコードを変更します – gianlucatursi

+0

構文エラー:トークン ':'プライマリ式ではありません –

0

あなたはように、コードを短くすることができます。

<h4 class="modal-title" ng-show="model.trainingModel.name">{{'EDIT_TRAINING' | translate}}</h4> 
<h4 class="modal-title" ng-show="!model.trainingModel.name">{{'NEW_TRAINING' | translate}}</h4> 

または使用:

<h4 class="modal-title">{{ model.trainingModel.name ? 'EDIT_TRAINING' : 'NEW_TRAINING'|translate}}</h4> 
+0

私の質問とまだ違いはありません:( –

+0

一度限りのバインディング構文:: –

0

あなたは

<h4 class="modal-title" data-ng-init=" value = (::model.trainingModel.name !== undefined) ? 'EDIT_TRAINING' : 'NEW_TRAINING'">{{ value | translate}}</h4> 

を試してみてください、私はng-initは、このような場合には適切ではありません知っています。値を初期化するには、forループを使用する必要があります。しかし、あなたのケースでは、テンプレート変数のトレーニングを作成し、それを設定し、あなたのjs/tsのファイルに:)

+0

それは動作しません –

+0

それはエラーを投げるのですか? – Vineet

0

を働く可能性がありますあなたのテンプレートで、その後

this.training = model.trainingModel.name ? 'EDIT_TRAINING' : 'NEW_TRAINING' 

+0

多くのことをするには、 –