Javascript Lazyload基于控制器名称空间约定的外部JS/CSS文件?

Javascript Lazyload基于控制器名称空间约定的外部JS/CSS文件?,javascript,jquery,model-view-controller,templating,angularjs,Javascript,Jquery,Model View Controller,Templating,Angularjs,angularJS是否有基于ng控制器名称空间加载外部JS/CSS文件的方法?那么下面的代码会将com.myApp.SomeClass.js和com.myApp.SomeClass.css附加到文档头吗 <div ng-controller="com.myApp.SomeClass"></div> 还没有,但它已经在1.0版之后投入使用 你的应用程序太大以至于你需要它吗?我们有一些令人印象深刻的大型应用程序,但还没有遇到这种需求,因为在没有angular的情况下编写相同

angularJS是否有基于ng控制器名称空间加载外部JS/CSS文件的方法?那么下面的代码会将com.myApp.SomeClass.js和com.myApp.SomeClass.css附加到文档头吗

<div ng-controller="com.myApp.SomeClass"></div>

还没有,但它已经在1.0版之后投入使用


你的应用程序太大以至于你需要它吗?我们有一些令人印象深刻的大型应用程序,但还没有遇到这种需求,因为在没有angular的情况下编写相同的行为时,控制器要密集得多。

使用slowscript如何?在angularjs上偷懒真的很容易

例如:

Slowscript:

来自网站的核心代码 app.js test.html(角度视图模板)
使用股票AngularJS 1.x是不可能的

但是,您可以使用延迟加载代码文件(js、HTML、CSS)

$ocLazyLoad
可与路由器完美配合,如。它返回一个承诺,并使用
resolve
属性确保在解析视图之前加载文件

angular.module('myApp', ['ui.router', 'oc.lazyLoad'])
     .config(function($stateProvider, $urlRouterProvider, $ocLazyLoadProvider) {
      $stateProvider
          .state('stateA', {
              url: '/stateA',
              controller: 'StateACtrl',
              templateUrl: 'stateA.html',
              resolve: {
                  load: [ '$ocLazyLoad', function($ocLazyLoad) {
                          return $ocLazyLoad.load([
                              {
                                  name: 'stateA',
                                  files: [
                                      'stateA.css',
                                      'stateA.js',
                                  ],
                              },
                          ]);
                      },
                  ],
              },
          })

          .state('stateB', {
              url: '/stateB',
              controller: 'StateBCtrl',
              templateUrl: 'stateB.html',
              resolve: {
                  load: [ '$ocLazyLoad', function($ocLazyLoad) {
                          return $ocLazyLoad.load([
                              {
                                  name: 'stateB',
                                  files: [
                                      'stateB.css',
                                      'stateB.js',
                                  ],
                              },
                          ]);
                      },
                  ],
              },
          });
  });
我还创建了一个演示工作模型

了解有关可能的配置选项的更多信息

希望有帮助

<div ng-controller="Sexy">
    <input list="univ">
        <datalist id="univ">
            <option ng-repeat="univ in univs" value="{{univ.name}}"></option>
        </datalist>
    </input>
    <input type="submit"></input>
    <noscript src="test.js" type="text/slowscript"></noscript>
</div>
require(['angular','slowscript'],function(angular,slowscript){
    slowscript.$global.sexy=(function($scope){
        console.log("tada~");
        $scope.univs = [{"idx": 1,"name": "asdf"}, {"idx": 2,"name": "bsdf"}];
        $scope.$apply();
    });
    slowscript.queue_execute();
});
angular.module('myApp', ['ui.router', 'oc.lazyLoad'])
     .config(function($stateProvider, $urlRouterProvider, $ocLazyLoadProvider) {
      $stateProvider
          .state('stateA', {
              url: '/stateA',
              controller: 'StateACtrl',
              templateUrl: 'stateA.html',
              resolve: {
                  load: [ '$ocLazyLoad', function($ocLazyLoad) {
                          return $ocLazyLoad.load([
                              {
                                  name: 'stateA',
                                  files: [
                                      'stateA.css',
                                      'stateA.js',
                                  ],
                              },
                          ]);
                      },
                  ],
              },
          })

          .state('stateB', {
              url: '/stateB',
              controller: 'StateBCtrl',
              templateUrl: 'stateB.html',
              resolve: {
                  load: [ '$ocLazyLoad', function($ocLazyLoad) {
                          return $ocLazyLoad.load([
                              {
                                  name: 'stateB',
                                  files: [
                                      'stateB.css',
                                      'stateB.js',
                                  ],
                              },
                          ]);
                      },
                  ],
              },
          });
  });