viewChangeListeners不在angular指令中工作

Cla*_*ket 5 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 (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();
        });
    }
    };
    });
Run Code Online (Sandbox Code Playgroud)

但我错过了一些东西,因为它永远不会触发updateClass方法.我究竟做错了什么?它永远不会触发updateClass方法..