Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs viewChangeListeners不在angular指令中工作_Angularjs_Angularjs Directive_Angular Directive_Angularjs Ng Model - Fatal编程技术网

Angularjs viewChangeListeners不在angular指令中工作

Angularjs viewChangeListeners不在angular指令中工作,angularjs,angularjs-directive,angular-directive,angularjs-ng-model,Angularjs,Angularjs Directive,Angular Directive,Angularjs Ng Model,因此,基本上,我需要一个指令,只要viewValue不是空的,就更新输入的类。这是代码 angular.module('app').directive('input', function() { return { restrict: 'E', require: '^?ngModel', link: function(scope, element, attrs, ngModelController) { if (ngModel

因此,基本上,我需要一个指令,只要viewValue不是空的,就更新输入的类。这是代码

    angular.module('app').directive('input', function() { return {
        restrict: 'E',
        require: '^?ngModel',
        link: function(scope, element, attrs, ngModelController) {
        if (ngModelController === null) return;
        var updateClass = function() {
          if (!(ngModelController.$isEmpty(ngModelController.$viewValue))) {
            element.addClass('input-has-value');
          } else {
            element.removeClass('input-has-value');
          }
        }
        ngModelController.$viewChangeListeners.push(function() {
          updateClass();
        });
    }
    };
    });

但我遗漏了一些东西,因为它从未触发updateClass方法。我做错了什么?它从不触发updateClass方法。

在中创建可复制的示例。此外,无论输入值是否为空,您都在应用相同的类
输入值
。您是否解决了此问题?我的$viewChangeListeners函数也没有被调用。