Javascript Angular JS ui路由器-加载动态视图和动态控制器

Javascript Angular JS ui路由器-加载动态视图和动态控制器,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我需要一种动态加载视图和相对控制器的方法。 我的应用程序将包含许多视图和控制器。我不想在应用程序设置中加载所有控制器定义,但我想加载一个视图和动态管理该视图的控制器 例如: /*index.html*/ <body> <div ui-view></div> <a ui-sref="state1">State 1</a> <a ui-sref="state2">State 2</a> &l

我需要一种动态加载视图和相对控制器的方法。 我的应用程序将包含许多视图和控制器。我不想在应用程序设置中加载所有控制器定义,但我想加载一个视图和动态管理该视图的控制器

例如:

/*index.html*/

<body>
    <div ui-view></div>
    <a ui-sref="state1">State 1</a>
    <a ui-sref="state2">State 2</a>
</body>

/*<!-- partials/state1.html -->*/

<script>/* controller definition */</script>
<div ng-controller="Cont">
/* content of view */
</div>

/*app.js*/
var myApp = angular.module('myApp', ['ui.router']);

myApp.config(function($stateProvider, $urlRouterProvider) {
  $stateProvider
    .state('state1', {
      url: "/state1",
      templateUrl: "partials/state1.html"
    });
});


加载state1视图时,我希望加载相对控制器。

您可以使用惰性加载控制器、css等。还有其他库,但我坚持使用ocLazyLoad,因为它的大小、功能以及我不使用requirejs。如果您只需要加载js,请查看。它小得令人难以置信。

您是在问是否可以在加载控制器的路由定义中使用控制器:/*load…*/吗?!
/*index.html*/

<body>
    <div ui-view></div>
    <a ui-sref="state1">State 1</a>
    <a ui-sref="state2">State 2</a>
</body>

/*<!-- partials/state1.html -->*/

<div ng-controller="Cont">
/* content of view */
</div>

/*app.js*/
var myApp = angular.module('myApp', ['ui.router']);

myApp.config(function($stateProvider, $urlRouterProvider) {
  $stateProvider
    .state('state1', {
      url: "/state1",
      templateUrl: "partials/state1.html",
      controller: /*Load the controller of state1 view*/
    });
});