angularJS 怎么把controllers.js里面的controller拆分成一个个独立的js文件?

发布于 2022-09-12 04:13:57 字数 1099 浏览 25 评论 0

情况是这样的:
这个controllers.js 文件中写了很多组件的controller。我想把组件的controller都拆分,分别放入对应的js里面,例如,下面的homeCtrl,我就想放入一个homeCtrl.js里面,这该怎么操作?
我按照github里面很多人的angularjs项目的文件去分,失败了。

`var app = angular.module('app', ['ngCookies', 'ui.router', 'ngFileUpload', 'tm.pagination']);
//路由配置
app.config(function($stateProvider, $urlRouterProvider){
   $stateProvider
   .state("home",{
 url: '/home',
 cache: false,
 template: '<div class="container"><div class="jumbotron"><h1></h1></div></div>',
 controller: "homeCtrl"
 })
   $urlRouterProvider.otherwise("home");
})

//清除templateUrl缓存
 app.run(function($rootScope, $templateCache){
        $rootScope.$on('$locationChangeStart', function(event, next, current){
         if(typeof(current) !== 'undefined'){
          console.log(current);
          $templateCache.remove(current);
          $templateCache.remove(current.templateUrl);
      }
      })
 })

 // 组件controller
 app.controller('homeCtrl', function ($http, $scope,$state, TipService) {
 
 // xxxxxxxxxxxx
 })
 
 .
 .
 .
 ...`

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一场信仰旅途 2022-09-19 04:13:57

这个问题我是后来收到一个答友的启发,使用ocLazyLoad,自己摸索成功的,现在放出我的解决方案:

.state("home",{
 url: '/home',
 cache: false,
 template: '<div class="container"><div class="jumbotron"><h1></h1></div></div>',
 controller: "homeCtrl",
 resolve: {
        loadMyService: ['$ocLazyLoad', function($ocLazyLoad) {
            return $ocLazyLoad.load('assets/js/component/home.js');  // 按需加载js
        }]
     }
 })
 
 // home.js
angular.module('app').controller('homeCtrl', function(){})
绾颜 2022-09-19 04:13:57

homeCtrl.js

angular.module('app').controller('homeCtrl', function(){})

index.js

require('./homeCtrl.js')
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文