增加价格的价值
Increase value of prices
我想做一个简单的"app"。当用户 increase/decrease ng-model="kilograms"
我想将当前价格乘以 "kilograms" 并更改 table 中的值。
我不知道如何在 JS 文件中抓取 product.price。
有几个地方可以使用修复
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。
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>
我想做一个简单的"app"。当用户 increase/decrease ng-model="kilograms"
我想将当前价格乘以 "kilograms" 并更改 table 中的值。
我不知道如何在 JS 文件中抓取 product.price。
有几个地方可以使用修复
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。
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>