$ scope。$ watch在jquery onchange之后没有触发?

时间:2014-06-08 13:14:23

标签: javascript jquery angularjs

好吧,我似乎无法让$ scope.watch开火..

        $scope.amountselected = 5;

    $scope.qtyselected = 1;

    $scope.$watch(['qtyselected'], function () {
        console.log($scope.availbleprecheckout);
    });

    jQuery(document).ready(function($) {
        jQuery('#weight').on('change', function() {
                $scope.amountselected = parseInt(this.value);
                $scope.$digest();
        });
        jQuery('.input-text.qty').bind('change', function(){
            $scope.$apply(function(fn){
                $scope.qtyselected ='AHHHHH'; 
            });
        });
    }); 
    $scope.$watch(['qtyselected','amountselected'], function () {

            console.log('quantity:'+$scope.qtyselected);

            console.log('weight:'+$scope.amountselected);

            console.log('avail:'+$scope.availbleprecheckout);

    });

我已经尝试了$ scope。$ apply $ scope.digest,我已经尝试嵌入$ scope。$ watch在.on内准备好文件('更改'但是似乎没什么用。 为什么

1 个答案:

答案 0 :(得分:2)

如果你想使用$watch,你应该将监视变量的名称作为字符串,而不是字符串数组。

简单地使用:

$scope.$watch('qtyselected', function(){

});

如果您想观看多个变量,可以使用:

$scope.$watchCollection('[qtyselected,amountselected]',function(){

});

或者

$scope.$watch('qtyselected+amountselected',function(){

});