2013-07-29 3 views
0

У меня есть веб-приложение Angular.js с сервисом UserModel и контроллер - Users.Angular.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); 
..... 
}]; 

Но получил undefined в UserModel и ошибок, что:

Error: Unknown provider: UserModelProvider <- UserModel 

Как это исправить?

UPD. Я нашел проблему. На самом деле этот сервис и контроллер в другом модуле, чем другое приложение, но я не могу сделать только:

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

Поскольку я загрузить этот скрипт во время работы веб-приложении. Как динамически загружать модуль в угловом приложении?

спасибо.

+0

Ну, вы не инъекционный 'UserModel' ... – finishingmove

+0

возможно дубликат [угловыми JS неизвестного провайдера] (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); 
}]); 
Смежные вопросы