0

いくつかの情報を表示するために ng-repeat を使用してテーブルを作成しています。表示される列の 1 つが「体重」列です。すべての重量をキログラム単位でデータベースに保存しますが、重量をポンド単位で表示するオプションをユーザーに提供する必要があります。

ユーザーが重量単位を選択できるドロップダウンがあり、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です。誰かが同様の状況に遭遇した場合、これを機能させる方法についてアドバイスをいただければ幸いです。ありがとう!

4

2 に答える 2

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;
        })
    }
};
于 2014-09-15T12:38:36.293 に答える
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 プロパティを変更する必要があります。

于 2014-09-15T12:36:57.397 に答える