ngtemplate-loader icon indicating copy to clipboard operation
ngtemplate-loader copied to clipboard

module( 'x' ).run() will not run asynchronously

Open neekey opened this issue 9 years ago • 2 comments
trafficstars

Hi, I'm trying to build a SPA which load controllers and templates asynchronously. I have a dashboard module like below:

var html = require( './view.html' );

angular.module( 'app' ). controller( 'dashboardCtrl', function(){
    /../
}); 

and in some point I will dynamically load this module:

require.ensure( [ 'dashboard' ], function(){
   ....
})

In the dev mode, I can see that ngtemplate-loader had generated the correct code, but I can not get the html from $templateCache.get(), then I hack the source code of ngTemplate-loader, add some debug code ( like alert(1) ) into the callback of module( 'x' ).run(), but the hack code is not executed.

I think the problem is that angular.module.run will not be executed again after angular finished its initialization.

I did a little test below:

angular.module( 'app', [] );
angular.module( 'app' ).run(function(){ console.log( 'run 1' ); });    // output: "run 1"

setTimeout(function(){
    angular.module( 'app' ).run(function(){ 
        console.log( 'run 2' );     // never executed.
    });
}, 1000);

neekey avatar May 15 '16 12:05 neekey

this https://github.com/WearyMonkey/ngtemplate-loader/pull/26 seems to solve this problem

neekey avatar May 15 '16 12:05 neekey

The same issue when define route templateUrl, how do you resolve this? @neekey

huang-xiao-jian avatar Jul 01 '16 03:07 huang-xiao-jian