2017-09-12 28 views
0

我想在一個角度表達式中創建一些數學,它關於以下內容;用戶可以在網站上獲得信用或用戶獲得折扣百分比。所以,我有以下代碼:Angular ng-repeat math

<div ng-repeat="item in NewArrivals"> 
<div>{{item.NewPrice - userCredit | number:2}}</div> 
<div> 

我想要做的是,當用戶登錄在我們userCredit變成一個數字,說起來很簡單,或者如果用戶沒有登錄該userCredit是 - 5%的item.NewPrice,並有問題。

這我在「PageController.js」

if (TheUser == "notThere") { 
     console.log('5% discount for the user') 
     var userDiscount = 0.95; 
    } else { 
     var userCredit = 300; 
    } 

我怎麼能夠得到newPrice減去5%的NG-重複每一個項目,如果用戶登錄?沒有做出兩個不同的重複序列。

回答

1

這是你如何管理它

<div ng-repeat="item in NewArrivals"> 
    <div ng-if="userDiscount">{{item.NewPrice * userDiscount | number:2}}</div> 
    <div ng-if="userCredit">{{item.NewPrice - userCredit | number:2}}</div> 
<div> 
+0

作品完美謝謝 –

1

要使模板上的值可用,您需要將其添加到$ scope(或者如果您使用控制器語法,則將其添加到控制器中)。此外,var userCredit = 5%;是無效的JavaScript。所以我會做這樣的:

if (TheUser === "notThere") { 
    $scope.userDiscount = 0.95; 
} else { 
    $scope.userDiscount = 1.0; // I'm not sure what value you want here. 
} 

,然後在模板:

<div ng-repeat="item in NewArrivals"> 
    <div>{{item.NewPrice * userDiscount | number:2}}</div> 
<div> 
+0

一個是實際的量(300)和另一個是百分比(5%),所以我想從NewPrice中扣除一個百分比或用戶擁有的實際信用額度。在這種情況下,它會扣除兩倍的百分比。我更新了這個問題,以便讓您的輸入更清晰 –

+1

也許你可以給我一個預期結果的例子。假設有兩個項目,第一個的價格= 10,第二個的價格= 20。如果「TheUser ===」notThere「',頁面應該顯示什麼?如果「TheUser!==」notThere「',頁面應該顯示什麼? –

+0

是的,我剛剛更新了這個問題,一個是百分比折扣另一個是折扣金額 –