2015-05-02 4 views
1

Во-первых, я новичок в Angular. Я готовлю несколько Web Api, и я хочу получить от них некоторые данные. моя функция обслуживания дата прибудете (отлично работает):AngularJS: TypeError: Невозможно прочитать свойство 'then' of undefined

var _getRole = function() { 
    $http.get(serviceBase + 'api/User/CurrentUserRoles').then(function (results) { 
     return results; 
    }); 
}; 

и контроллер:

var role = []; 
authService.getRole().then(function (results) { 
    role = results.data;... 

В этой функции в контроллере я получаю исключение:

TypeError: Cannot read property 'then' of undefined 
at n.$scope.login (http://localhost/.../app/controllers/loginController.js:27:30) 
at ib.functionCall (http://localhost/.../Scripts/angular.min.js:199:303) 
at Ec.(anonymous function).compile.d.on.f (http://localhost/.../Scripts/angular.min.js:216:74) 
at n.$get.n.$eval (http://localhost/.../Scripts/angular.min.js:126:15) 
at n.$get.n.$apply (http://localhost/.../Scripts/angular.min.js:126:241) 
at HTMLButtonElement.<anonymous> (http://localhost/.../Scripts/angular.min.js:216:126) 
at HTMLButtonElement.c (http://localhost/.../Scripts/angular.min.js:32:389) 

Пожалуйста, помогите. Благодарю.

+0

вы вводили '$ http'? – c69

+0

- это сервис - конечно, в контроллере - нет – mar14

+1

ОК, теперь - вы не возвращаете обещание от '_getRole' – c69

ответ

1

Вам необходимо вернуть обещание от функции, что $http действительно возвращает себя.

Код

var _getRole = function() { 
    return $http.get(serviceBase + 'api/User/CurrentUserRoles'); 
}; 
+0

Как я глупо ... Спасибо большое !!!;) – mar14

+0

@ mar14 no probs..glad, чтобы помочь вам, спасибо:) –

Смежные вопросы