2016-09-18 8 views
1

私はスリムファイルに角を組み込む必要があります、私はどのように他の角度のブロックを変換するか分からない。私は、角度がelse文場合ngの必要はありませんが、私はあなたが探しているもの、この他の場合は角度js

ng-if="cart.empty" 
    cart is empty 

    ng-else-if cart.invalid 
    can't proceed 

    ng-else 
    ng-repeat="cart.Items as item" 
      item.description 

答えて

1

のようないくつかのことを達成したい角度

- if @cart['empty'] 
    cart is empty 
- elsif @cart['invalid'] 
    can't proceed 
- else 
    [email protected]['Items'].each do |item| 
     #{item['description']} 

へのコードの下に変更する方法がある知っていますng-switchディレクティブです。

$scope.getStatus = function(cart) { 
    if (cart.empty) return 'empty'; 
    if (cart.invalid) return 'invalid'; 
} 

をそしてディレクティブを使用します:

まず、スイッチの状態が含まれていますいくつかの変数を取得

<div ng-switch = "getStatus(cart)"> 
    <div ng-switch-when = "empty">Cart is empty</div> 
    <div ng-switch-when = "invalid">Can't proceed</div> 
    <div ng-switch-default>.... ok ....</div> 
</div> 
+0

このアイデアは理にかなっています。しかし、railsコントローラがエラーを返す場合、@errorのようにエラーメッセージとカート変数はありません。スイッチブロックにその条件(エラーの場合)を追加するにはどうすればいいですか? –

+0

@tumatiあなたのスコープにエラーがあると仮定すると、関数 'ng-switch =" getStatus(cart、error) "にエラーを返し、getStatusは"エラー "を返し、それは新しいng-switch'ステートメントです。あなたがどんなアプローチでも展開できる 'ng-switch'について知ったので、私たちはあなたのためにすべてを行うことはできません – floribon