0

チェックボックスバインディングのモデルをブール値ではなく数値に設定するディレクティブがあります。

module.directive('sjNumber', function() {
    return {
        require: 'ngModel',
        link: function($scope, $element, $attribute, $modelController) {
            $modelController.$parsers.push(function(viewValue) {
                return viewValue + 0;
            });
        }
    };
});

ただし、これを使用すると、チェックボックスの値を変更した後、モデルは常にtrueorではなくorに設定されます。false10

掘り下げてみたところ、関数の実行linkにAngularの組み込みチェックボックスパーサーが挿入され、その時点で$parsers配列が空であることがわかりました。(組み込みのパーサーはcheckboxInputType、AngularJS v1.2.0-rc.3 の 14945 行に追加されています。)

どうすればこれを機能させることができますか?

4

0 に答える 0