如何在需要时只在离子中加载控制器?

时间:2016-12-16 07:32:48

标签: angularjs ionic-framework

我在www/js/controllers中有一个控制器文件夹,我保留了我的应用程序所需的所有控制器。但是当我启动应用程序时,所有控制器都会立即加载。现在我怎样才能加载那些正在使用其视图的控制器并保持其他控制器的安静。

2 个答案:

答案 0 :(得分:1)

要动态加载控制器,您需要使用RequireJS。

http://requirejs.org/

  1. 使用https://oclazyload.readme.io/docs/with-your-router

  2. 或者, 试试这个:

    如果您使用的是ngRoute:

       $routeProvider
            .when('/url',
                {
                    templateUrl: '/views/abc.html',
                    resolve: resolveController('/controllers/abc.js')
                });
    

    使用UI-Router:

    .state('abc',{
                url : '/abc',
                templateUrl : 'views/abc.html',
                resolve: resolveController('/controllers/abc.js')
            })
    

答案 1 :(得分:0)

我不知道你要问的是什么。

请参阅,JavaScript加载执行应用程序时所有文件(甚至不会花费很多时间)。注意,文件加载(分配内存)不执行除了动态功能之外的功能。 Ex(Angularjs,Jquery,Underscore - 文件首次加载但函数在我们使用时执行)。

Angularjs是JS框架吗?和上面一样,这里我们告诉你在路由或ng-controler指令中按照视图执行控制器,注意文件之前只是加载了。在单一视图中,我们可以根据需要执行许多控制器(ng-controller)。

创建控制器&以IIFE为基础的服务。这很好。