我正在使用ng-repeat构建一个表来显示一些信息。显示的其中一列是“权重”列。我们将所有重量以千克为单位存储在数据库中,但需要让用户选择以磅为单位显示重量。
我有一个下拉菜单,用户可以选择权重单位,在ng-change上我正在尝试更新表格。但是,我无法让它工作。
以下是我的更改功能(JSFiddle中的完整示例):
$scope.ConvertWeights = function () {
if ($scope.schedWeight.ID == "I") {
$scope.items.Weight = $scope.items.Weight * 2.2046;
} else {
$scope.items.Weight = $scope.items.Weight / 2.2046;
}
}
这是我目前正在尝试的JSFiddle。如果有人遇到类似的情况,我会很感激如何让这个工作!谢谢!
答案 0 :(得分:1)
请更新您的功能
$scope.ConvertWeights = function () {
if ($scope.schedWeight.ID == "I") {
angular.forEach($scope.items, function(item){
item.Weight = item.Weight * 2.2046;
})
} else {
angular.forEach($scope.items, function(item){
item.Weight = item.Weight / 2.2046;
})
}
};
答案 1 :(得分:0)
$ scope.items是您的项目集合(数组)。你可能想写:
$scope.ConvertWeights = function () {
if ($scope.schedWeight.ID == "I") {
for (var i in $scope.items)
$scope.items[i].Weight = $scope.items[i].Weight * 2.2046;
} else {
for (var i in $scope.items)
$scope.items[i].Weight = $scope.items[i].Weight / 2.2046;
}
}
您需要修改每个元素的Weight属性,而不是集合本身。