2013-07-29 100 views
0

我有服务UserModel和控制器Angular.js Web应用程序 - UsersAngular.JS未知提供商

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); 
..... 
}]; 

UserModelundefined和错误:

Error: Unknown provider: UserModelProvider <- UserModel 

如何解决呢?

UPD。我发现问题。其实这个服务和控制器在其他模块比其他应用程序,但我不能只是做:因为我加载web应用程序的工作时间这个剧本

angular.module(my_main_module, ['my_mode_ext']) 

。如何在角度应用程序中动态加载模块?

谢谢。

+0

嘛,你不注射'UserModel' ... [角度JS未知提供商(的 – finishingmove

+0

可能重复http://stackoverflow.com/questions/12339272/angular-js-unknown-provider) –

回答

1

语法不正确,请更改下面

var UsersController = ['$scope', '$rootScope', '$http', '$route','UserModel','ngTableParams' 
    function($scope, $rootScope, $http, $route, UserModel, ngTableParams){ 
    console.log('UserModel ' + UserModel); 
..... 
}]; 
+0

结果相同:( – 0xAX

1

添加字符串名称功能之前

var UsersController = ['$scope', '$rootScope', '$http', '$route', 'UserModel', 'ngTableParams' 

function($scope, $rootScope, $http, $route, UserModel, ngTableParams){ 
    console.log('UserModel ' + UserModel); 
..... 
}]; 
+0

谢谢您的回复,但结果相同 – 0xAX

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); 
}]);