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 follow
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.
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.