我的Angular.js网络应用程序包含服务UserModel
和控制器 - Users
。
UserModel
:
/*
* User model service
*/
angular.module('my_mode_ext').factory('UserModel', [function(){
// user model
var model = [];
//
// Return users model
//
model.get = function(){
// some object
model = {.........};
// return model
return model;
}
return model;
}]);
我尝试在控制器中使用它:
var UsersController = ['$scope', '$rootScope', '$http', '$route',
function($scope, $rootScope, $http, $route, UserModel, ngTableParams){
console.log('UserModel ' + UserModel);
.....
}];
但在undefined
中获得UserModel
并且错误:
Error: Unknown provider: UserModelProvider <- UserModel
如何解决?
UPD。我发现了问题。实际上这个服务和控制器在其他模块中而不是另一个应用程序,但我做不到:
angular.module(my_main_module, ['my_mode_ext'])
因为我在Web应用程序的工作时间加载此脚本。如何在角度应用程序中动态加载模块?
谢谢。
答案 0 :(得分:1)
语法不正确请转到下面
var UsersController = ['$scope', '$rootScope', '$http', '$route','UserModel','ngTableParams'
function($scope, $rootScope, $http, $route, UserModel, ngTableParams){
console.log('UserModel ' + UserModel);
.....
}];
答案 1 :(得分:1)
在函数
之前添加字符串名称var UsersController = ['$scope', '$rootScope', '$http', '$route', 'UserModel', 'ngTableParams'
function($scope, $rootScope, $http, $route, UserModel, ngTableParams){
console.log('UserModel ' + UserModel);
.....
}];
答案 2 :(得分:1)
必须在定义UserModel服务的同一模块上定义控制器,或者控制器模块应依赖于my_mode_ext
模块。
查看代码,控制器定义变为
angular.module('my_mode_ext').controller("UserController",['$scope', '$rootScope', '$http', '$route','UserModel','ngTableParams', function($scope, $rootScope, $http, $route, UserModel, ngTableParams){
console.log('UserModel ' + UserModel);
}]);