如何在angular.module文件中“导入”一个controller.js文件

问题描述:

我刚刚开始学习Angular,因此我在这里试图弄清楚的问题可能会有点尴尬地制定。我会尽我所能并解释我所处理的事情。如何在angular.module文件中“导入”一个controller.js文件

我其中我已宣布

angular.module('app', [ 
'ngRoute' 

])

现在我有用于控制器作为home.controller.js含有

一个separrate文件内的主main.js模块文件
angular 
.module('app')  
.controller('HomeController', ['$scope', function($scope) { 
}]); 

有什么办法包括home.controller.js文件withing的main.js文件,而无需把脚本SRC在html?我试图import 'path/home.conntroller.js但我得到这个错误

模块'应用程序'不可用!您拼错了模块名称或忘记加载模块名称。

欣赏的帮助。

你必须使用库来实现这个任务。即使angular 2 typecript允许导入模块,但在角度1中,您必须使用一些库来延迟加载模块。

一是requireJs。 RequireJS是一个JavaScript库,可以帮助延迟加载JavaScript依赖项。

另一个是ocLazyLoad。在ocLazyLoad,在布线时可以装载内部解决的js文件。

这里是ocLazyLoad

config(function($routeProvider) { 
    $routeProvider.when('/', { 
     template: require('./modules/home/home'), 
     controller: 'HomeController', 
     controllerAs: '$home', 
     resolve: { 
      loadMyCtrl: ['$ocLazyLoad', function($ocLazyLoad) { 
       return $ocLazyLoad.load('ur_controller.js'); 
      }] 
     } 
    }); 
}) 
+0

我也有这个在我main.js '的.config(函数($ routeProvider){ $ routeProvider .when('/',{ template:require('./ modules/home/home'), controller:'HomeController', controllerAs:'$ home' }); });' 我在想,也许我可以在控制器写:'要求(“路径/ home.controller.js”);',但它仍然不工作。 –

+0

@make一定要添加require,js库。请按照文档 –

样本确保main.js包括在home.controller.js之前,你的HTML文件...例如:

<script src="main.js"></script> 
 
<script src="home.controller.js"></script>