Angular 重复数学

Angular ng-repeat math

我想在 angular 表达式中创建一些数学,其内容如下;用户可以在网站上获得信用,或者用户获得一定比例的折扣。所以我有以下代码:

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

我想做的是当用户登录时,我们的 userCredit 变成一个数字,这很简单,或者如果用户没有登录,userCredit 是 item.NewPrice 的 -5% ,问题来了。

这个我在'PageController.js'

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

如果用户已登录,我如何才能使 ng-repeat 中的每个项目的新价格减去 5%?没有进行两次不同的 ng-repeats。

要使该值在您的模板上可用,您需要将其添加到 $scope(或者如果您使用的是 controller-as 语法,则将其添加到控制器)。此外,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>

这就是您的管理方式

<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>