0

私の angular.js アプリでは、ユーザーが数量を入力できるスコープ変数にバインドされた入力フィールドをレンダリングしています。

私が今やろうとしているのは、バインドされた変数へのすべての変更を傍受することです。整数以外の数量が入力された場合、またはフィールドが空白のままになっている場合は、スコープ変数を 1 に設定したいと思います。

ウォッチを介してこれを行うことができましたが、数量変数がウォッチ関数でも変更されるため、エラーが発生しています。

$scope.$watch('quantity', function (oldValue, newValue) {
    // Some Code ...
    if (!valid) {
        $scope.quantity = 1;
    }
});

どんなアイデアでも大歓迎

4

2 に答える 2

1

$timeoutを強制的に使用できますscope.apply。簡単に、あなたはこのようにすることができます

$scope.check = function () {
    // Some Code ...
    if (!valid) {
        $timeout(function () {
            $scope.quantity = 1;
        });
    }
};

DEMO

于 2013-08-26T17:02:34.797 に答える