Angularjs Can';t将查询传递给$resource服务
我有一个控制器(通过$resource服务)查询PHP脚本。PHP返回JSON。控制器使用来自名为“userUsername”的ng模型的输入。我可以看到没有任何东西被发送到PHP文件。我在控制台中得到了以下信息: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
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
。