页面相应的控制器将按角度js按需加载

时间:2016-04-14 07:18:54

标签: angularjs html5

我是angularjs的新手。我正在使用HTML5在angularjs中进行SPA应用。我希望在调用tempalate页面时加载与页面相关的控制器。例如,我有三个html页面Index.html,HOME.Html和contact.html,并有各自的控制器homecontroller.js和contactController.js。 HOME.Html和contact.html在Index.html的ng-view部分按需加载。

当我在index.html上添加homecontroller.js和contactController.js的引用时,它工作正常但我想加载HOME.Html和contact.html的相应控制器意味着当home被调用时只有homecontroller。 js将被加载,当contactis被调用时,只会加载contactController.js。

任何人都请建议如何实现这个目标

1 个答案:

答案 0 :(得分:1)

我建议您使用UI-Router:

https://github.com/angular-ui/ui-router

myApp.config(function($stateProvider, $urlRouterProvider) {
  //
  // For any unmatched url, redirect to /home
  $urlRouterProvider.otherwise("/home");
  //
  // Now set up the states
  $stateProvider
    .state('home', {
      url: "/home",
      templateUrl: "partials/home.html",
      controller: 'homeController',
      controllerAs: 'homeCtrl'
    })
    .state('contact', {
      url: "/contact",
      templateUrl: "partials/contact.html",
      controller: 'contactController',
      controllerAs: 'contactCtrl'
    })    ;
});