如何在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');
}]
}
});
})
答
样本确保main.js包括在home.controller.js之前,你的HTML文件...例如:
<script src="main.js"></script>
<script src="home.controller.js"></script>
我也有这个在我main.js '的.config(函数($ routeProvider){ $ routeProvider .when('/',{ template:require('./ modules/home/home'), controller:'HomeController', controllerAs:'$ home' }); });' 我在想,也许我可以在控制器写:'要求(“路径/ home.controller.js”);',但它仍然不工作。 –
@make一定要添加require,js库。请按照文档 –