Angularjs Can';t将查询传递给$resource服务

Angularjs Can';t将查询传递给$resource服务,angularjs,Angularjs,我有一个控制器(通过$resource服务)查询PHP脚本。PHP返回JSON。控制器使用来自名为“userUsername”的ng模型的输入。我可以看到没有任何东西被发送到PHP文件。我在控制台中得到了以下信息: h {usernameTyped: null, $get: function, $save: function, $query: function, $remove: function…} app.js var userAppModule = angular.module("use

我有一个控制器(通过$resource服务)查询PHP脚本。PHP返回JSON。控制器使用来自名为“userUsername”的ng模型的输入。我可以看到没有任何东西被发送到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"}
    });
});
function LoginCtrl($scope, $route, $routeParams, $location, User) {
    $scope.loginUser = function() {
        $scope.userQuery = User.query({username: $scope.userUsername}, function(res) {
            console.log(res);
        });
    }
}
controllers.js

var userAppModule = angular.module("userApp", ["ngResource"]);
userAppModule.factory("User", function($resource) {
    return $resource("php/login-process.php/:username", {}, {
        query: {method: "GET"}
    });
});
function LoginCtrl($scope, $route, $routeParams, $location, User) {
    $scope.loginUser = function() {
        $scope.userQuery = User.query({username: $scope.userUsername}, function(res) {
            console.log(res);
        });
    }
}

我想我可能是控制器函数出错了。

你几乎是对的:问题在于回调。在您的例子中,第一个参数,
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
变量,您应该会看到控制台的第二个条目,其中包含来自服务器响应的数据。

谢谢,但是我仍然得到了与以前类似的结果。在控制台中,我现在得到:
user:h{$get:function、$save:function、$query:function、$remove:function、$delete:function}h{$get:function、$save:function、$query:function、$remove:function、$delete:function}
,但是我不得不从服务中删除
/:username