2013-07-29 157 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); 
}]);