Why ngModel's $render is not called when the model changes in AngularJS?

后端 未结 2 1132
挽巷
挽巷 2021-02-12 17:31

DEMO

Why in the following example $render is not called when the button is clicked?



        
2条回答
  •  再見小時候
    2021-02-12 17:49

    The input directive is running after your directive and thus it's $render function is replacing yours.

    Set your directive's priority to something greater than 0. For instance:

    .directive("phoneNumber", function() {
      return {
        restrict: 'A',
        require: 'ngModel',
        priority: 1,
        link: function(scope, element, attrs, ngModel) {
          ngModel.$render = function() {
            alert('rendering');
          };
        } 
      };
    });
    

    And your $render will take precedence and you'll see your alert is called.

提交回复
热议问题