2013-02-13 2 views
0

У меня есть контроллер, запрашивающий PHP-скрипт (через службу $ resource). PHP возвращает JSON. Контроллер использует вход из ng-модели, называемой «userUsername». Я вижу, что ничего не отправляется в файл PHP. Я получаю это возвращается в консоли:

h {usernameTyped: null, $get: function, $save: function, $query: function, $remove: function…} 

app.js

var userAppModule = angular.module("userApp", ["ngResource"]); 
userAppModule.factory("User", function($resource) { 
    return $resource("php/login-process.php/:username", {}, { 
     query: {method: "GET"} 
    }); 
}); 

controllers.js

function LoginCtrl($scope, $route, $routeParams, $location, User) { 
    $scope.loginUser = function() { 
     $scope.userQuery = User.query({username: $scope.userUsername}, function(res) { 
      console.log(res); 
     }); 
    } 
} 

Я думаю, что я, вероятно, что-то неправильно в функции контроллера.

ответ

0

Вы почти правы: проблема заключается в обратном вызове. первый параметр, res в вашем случае, на самом деле объект ресурса.

Вам не нужен, что обратный вызов в этом случае, как ngResource разработан, чтобы иметь возможность работать без обратных вызовов в общем случае:

function LoginCtrl($scope, $route, $routeParams, $location, User) { 
    $scope.loginUser = function() { 
     $scope.user = User.query({username: $scope.userUsername}); 

     // Just throwing a watch in here to see what happens 
     // to $scope.user 
     $scope.$watch('user', function(newValue, oldValue) { 
      console.log("user:", newValue, oldValue); 
     }); 
    } 
} 

Вы увидите один вход появиться сразу в консоли, это пустые данные, которые $resource присваивает вашему объекту области видимости.

Когда данные в конечном итоге вернутся с сервера, он будет назначен переменной $scope.user, и вы должны увидеть вторую запись в консоли с данными из ответа сервера.

+0

Спасибо, однако я все еще получаю нечто похожее на то, что у меня было до этого. В консоли я получаю: 'user: h {$ get: function, $ save: function, $ query: function, $ remove: function, $ delete: function} h {$ get: function, $ save: function, $ query: function, $ remove: function, $ delete: function} 'Действительно ли моя служба правильно настроена для запроса? – Fisu

+0

В итоге я получил это, чтобы работать, но мне пришлось удалить «/: username» из службы. – Fisu

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