AngularJS 1.4.8 - 如果值已更改,则仅在ng-blur上调用我的Web服务

时间:2016-01-04 19:21:16

标签: angularjs

我有一个文本框应该在模糊时调用Web服务,但仅在值更改时才会调用

我尝试了ng-change,但它在第一个按钮上调用了服务。 我尝试了ng-blur,但即使值没有改变,它也会调用该服务。

ng-blur="SetProgress(Id, Progress)"

当我完成编辑值并且值已更改时,如何调用服务。

由于

1 个答案:

答案 0 :(得分:0)

指令可以解决这个问题:

.htaccess

在您的HTML中,您可以这样使用它:

.directive('saveOnBlur', [
    function () {
        return {
            scope: { saveOnBlur: '&' },
            restrict: 'A',
            require: 'ngModel',
            link: function ($scope, elem, attrs, ngModel) {
                elem.on('blur', function () {
                    if (ngModel.$dirty) {
                        console.log('model is dirty, saving');
                        $scope.$apply(function () {
                            $scope.saveOnBlur();
                        });
                    }
                });
            }
        };
    }
]);

codepen - http://codepen.io/jusopi/pen/LGxvMo?editors=100