2015-02-19 2 views
0

Im возникают проблемы, делая в http.get вызов моей апи Вот настройки:.функция Factory дает «Ошибка: не определено

user.js

.config(['$stateProvider', '$urlRouterProvider', 
    function($stateProvider, $urlRouterProvider) { 

    $urlRouterProvider.otherwise('/hem'); 

    $stateProvider.state('anvandare', { 
     url: '/anvandare', 
     views: { 
     'main': { 
      controller: 'UserController', 
      templateUrl: 'modules/user/user.tpl.html' 
     } 
     } 
    }); 

}]) 

.controller('UserController', 
    ['$scope', '$http', 'userFactory', function($scope, $http, userFactory) { 
    this.users = [{name: "Patrik"}]; 
    $scope.message = userFactory.test(); 

    userFactory.getUsers().then(function(users) { 
     $scope.users = users; 
    }); 
}]) 

.factory('userFactory', ['$http', function($http) { 

    return { 
    test: function() { 
     return "hello world"; 
    }, 
    getUsers: function() { 
     $http.get('/api/user'); 
    } 
    }; 
}]); 

модули/пользователь/user.tpl.html

<div class="container" ng-controller="UserController as UserCtrl"> 
    <h1>Users</h1> 

    <p>{{message}}</p> 
    <ul> 
    <li ng-repeat="user in users">{{user.name}}</li> 
    </ul> 
</div> 

так прямо сейчас, я кэш отключен, и Im не видя 304: сек по требованию, так что я знаю, все рес ponses свежие, и я могу видеть <h1>Users</h1> <p>{{message}}</p>, а сообщение = «привет мир», как и должно быть, но список пользователей не отображается. Как я смотрю я хрому инструментов на странице он говорит

"Error: userFactory.getUsers(...) is undefined" 

Когда тип «локальный: 5000/API/пользователь» в моем браузере я получаю все пользователи обратно в JSON

[{"_id":"54e4c44f8d18e2a43f58935f","name":"Patrik","__v":0,"updated_at":"2015-02-18T16:56:47.105Z"},{"_id":"54e4c4588d18e2a43f589360","name":"Patrik Nygren","__v":0,"updated_at":"2015-02-18T16:56:56.603Z"},{"_id":"54e4c45f8d18e2a43f589361","name":"Patrik Ackerfors","__v":0,"updated_at":"2015-02-18T16:57:03.011Z"},{"_id":"54e4c4888d18e2a43f589362","__v":0,"updated_at":"2015-02-18T16:57:44.226Z"}] 

Что я делать не так?

+0

Вы что-нибудь из вашей 'функции getUsers' не возвращается. Вам нужно «вернуть $ http.get ('/ api/user');' – CodingIntrigue

+0

Да, именно так, сделайте ответ, и я разрешу его. Спасибо – patriques

+0

Tbh, который не поможет никому другому ... возможно, когда-либо :) Вы должны просто удалить вопрос – CodingIntrigue

ответ

0

вы должны вернуть что-то из вашего метода :

getUsers: function() { 
    return $http.get('/api/user'); 
}