我收到javascript运行时错误
myApp未定义
我的角度服务。不知道我在这做什么错..
这就是我定义app.js
的方式app.js
var myApp = angular.module('myApp', [
'ngRoute', 'motorControllers', 'motorDetailsController', 'motorServices', 'ngSanitize', 'ui.select', 'ngResource',]);
myApp.config(['$routeProvider',
function ($routeProvider) {
$routeProvider.
when('/motors', {
templateUrl: 'View/motorList.html',
controller: 'motorController'
}).
when('/motors/:Id', {
templateUrl: 'View/motorDetails.html',
controller: 'motorDetailsController'
}).
otherwise({
redirectTo: '/motors'
});
}]);
这就是我在控制器中创建/调用myApp
的方式。
控制器
angular.module('myApp', []).controller('motorController', function ($scope, motorService) {
//////
}
这就是我尝试在我的服务中使用myApp的方法。但它给出了错误myApp is undefined.
服务
myApp.service('motorService', ['$http', function ($http) {
//////
}
这就是我在html中声明的方式
<html ng-app="myApp">
期待一些帮助。 感谢
答案 0 :(得分:1)
我认为错误发生在控制器的声明中,因为你要定义应用程序'myApp'两次。
angular.module('myApp', []).controller('motorController', function ($scope, motorService) {
//////
}
应该是
angular.module('myApp').controller('motorController', function ($scope, motorService) {
//////
}
编辑 @simbada
这取决于你。您可以将它们分成不同的模块。
(function(angular){
angular
.module('myApp', ['myApp.Controllers']);
angular
.module('myApp.Services', [])
.service('mySrv', function($http){
function _get(){
return $http.get('url');
}
return {
get: _get
}
});
angular
.module('myApp.Controllers', ['myApp.Services'])
.controller('myCtrl', function($scope, mySrv){
$scope.var = 'Hello';
});
})(angular);
答案 1 :(得分:0)
我认为这应该是
angular.module('myApp').controller('motorController', function ($sc...
whitout []括号。
还了解您如何申报服务:
var myApp = angular.module('myApp', [
'ngRoute', 'motorControllers', 'motorDetailsController', 'motorServices', 'ngSanitize', 'ui.select', 'ngResource']);
当您的服务是&#39; motorService&#39;
您的服务应该是:
myApp = angular.module('motorServices');
myApp.service('motorService', ['$http', function ($http) {
////// }
答案 2 :(得分:0)
在ngResource
之后,您已经通过了依赖性逗号,只是删除它才能正常工作。
var myApp = angular.module('myApp', [
'ngRoute', 'motorControllers', 'motorDetailsController', 'motorServices', 'ngSanitize', 'ui.select', 'ngResource']);