当这些控制器位于不同的js文件中时,如何将一个模块用于多个控制器。
我有3个js文件 app.js 2.登录。 JS 3. Register.js
app.js
var app = angular.module("myApp", ['ngRoute']);
app.config(function ($routeProvider) {
$routeProvider.when('/', {
templateUrl: 'Login/login.html',
controller: 'myCtrl'
})
.when('/register', {
templateUrl: 'Register/register.html',
controller: 'registerCntrl'
})
})
Login.js
var app = angular.module("myApp");
app.controller("myCtrl", function ($scope) {
$scope.login = function (data) {
console.log(data);
if (data.name == 'pinku' && data.pswd == '1234') {
console.log("Login Successfull");
} else {
console.log("Not successful");
}
};
$scope.moreInfo = function () {
alert("M in more info");
}
});
Register.js
var app = angular.module("myApp");
app.controller("registerCntrl", function ($scope) {
});
我已经在app.js文件中定义了mymodule,现在我想将我的控制器注册到该模块,控制器在不同的类中。我在app.js中注入了ng-Route。在登录m中使用已定义的模块但是出现错误
'由于:'
,无法实例化模块ngRoute提前致谢
答案 0 :(得分:1)
如果您先加载app.js
,则可以在其他文件中注入模块,如
app = angular.module("myApp");
请注意,我从函数调用中省略了[]
。这意味着您正在尝试获取已定义的模块。
答案 1 :(得分:1)
你可以这样做:
angular.module("myApp")
.controller(...)
对于两个控制器,而不是在这里写变量
注意: app.js 应该在任何控制器之前加载。
这是可行的方法之一:
<html ng-app="myApp">
<head>
<title></title>
</head>
<body>
<script type="text/javascript" src="app.js"></script>
<script type="text/javascript" src="controller1.js"></script>
<script type="text/javascript" src="controller2.js"></script>
</body>
</html>
除此之外,您还可以使用gulp OR grunt之类的任务运行程序自动执行此操作。