2016-09-18 158 views
1

我必須在我的超薄文件中合併角度,我不知道如何轉換if else塊的角度。我知道角不必如果else語句納克,但有什麼辦法下面的代碼更改爲角if else if else in angular js

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

我要實現一些這樣的事

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

你在找什麼是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