增加价格的价值

Increase value of prices

我想做一个简单的"app"。当用户 increase/decrease ng-model="kilograms"

我想将当前价格乘以 "kilograms" 并更改 table 中的值。

我不知道如何在 JS 文件中抓取 product.price

CodePen

有几个地方可以使用修复

1.You 可以使用 ng-change 来跟踪输入的变化,使用它代替 ng-click

<input type="number" ng-change="updateValue()" ng-model="kilograms"/>

2.The 更新函数不应取值,因为您正在更新整个 table 而不是特定条目。这意味着您也需要使用循环来更新所有条目。

$scope.updateValue = function () {
   angular.forEach($scope.products, function(item){
     item.totalPrice = item.price * $scope.kilograms;
   });
 }

3.You 无法更新您的 price 因此您无法跟踪单价,您需要将其保存在其他属性中,即 totalPrice

4.You 需要在初始化期间调用一次更新函数,因此您不会在加载时看到空的 table。

http://codepen.io/anon/pen/xOdWOB

var app = angular.module("application", []);

  app.controller("filterCTRL", function($scope) {

     $scope.products = [
        {name:"Milk", price:100},
        {name:"Orange", price:120},  
        {name:"Farina", price:50}
     ];

     $scope.kilograms = 2;

     $scope.$watch('kilograms', function(newVal, oldVal) {
       if( newVal != oldVal) {
         $scope.products.forEach(function(product) {
            product.price *= newVal;
         });
       }
     });

     $scope.updateValue = function (product) {
       return product.price = product.price * $scope.kilograms;
     }
}); 

lcyool 的回答也有效 :)

创建 $watch 和 ng-change 都会在元素值发生变化时触发一个函数。您可以使用它来检测变化,并将千克和价格的值相乘并更新它。

您可以将价格与 HTML 本身中的 kilograms 相乘,当 kilograms 已更改。

<td>{{product.price * kilograms | currency:$:0}}</td>