Skip to content Skip to sidebar Skip to footer

$render Stopped Working At Angular 1.2.2 (file Validation Directive)

I have migrated from angular 1.0.8 to angular 1.2.2 yesterday, and beside a bunch of other things that got broken and I've already fixed, the $render function on the following dire

Solution 1:

Increase the priority of your directive to something above 0.

For example:

myApp.directive('validFile', function ($filter) {
   return {
     priority: 10,

Here's a detailed explanation of the problem that I found associated with this ui-tinymce issue that's, at it's root, the same as yours.

The short version of the explanation being that this change causes input's $render to take precedence over your own. By bumping the priority of your directive you, in effect, give your $render priority- as it was before that change in 1.2 rc3.

Solution 2:

I've tested this with angular 1.2.10 for a textbox and whatever priority I set, original input $render method was set afterwards overriding my $render function.

This problem occurs in angular-ui tinymce module as well which can not render the initial model value. So I changed the timeout part in tinymce directive to override the original $render method as follows:

var render = function() { // my rendering code }    
setTimeout(function () {
                      tinymce.init(options);
                      if (ngModel.$render != render) {
                          var originalRender = ngModel.$render;
                          ngModel.$render = function() {
                              originalRender();
                              render();
                          };
                  }
              });

This way, after all "link" functions are executed, you can override the render method.

Post a Comment for "$render Stopped Working At Angular 1.2.2 (file Validation Directive)"