【发布时间】:2017-07-29 18:01:54
【问题描述】:
我创建了一个表单,然后单击该表单我想查看来自服务器(nosejs)的响应。在 Angular 控制器中,我正在调用该服务。当从服务本身调用时响应是可见的,但从控制器调用时什么都没有显示。
控制器:
MyApp.angular.controller("loginCtrl", function($scope, UserService){
$scope.name = "TestName";
$scope.check = function(user){
UserService.createUser(user, function(response){
$scope.userinfo = response;
console.log("FROM Ctrlr: " + response);
});
}
});
服务:
MyApp.angular.factory("UserService", function($http,$location){
var service = {
createUser: createUser
};
return service;
function createUser(user){
$http.post("/register", user).then(function(response){
console.log("FROM Srvc:" +response);
});
}
});
NodeJS:
app.post("/register", function(req, res){
var user = req.body;
res.json(user);
});
如果我从服务调用它,我可以看到记录到控制台的响应。但是从控制器本身调用时没有响应。包含MyApp.angular.factory 和MyApp.angular.controller 的原因是我在另一个配置文件中声明了MyApp。
我做错了什么?
【问题讨论】:
-
UserService.createUser方法不返回任何内容,也不接收要处理的回调。如果您没有以某种方式返回它,您怎么能期望控制器中的response对象? -
无意冒犯兄弟/姐妹,但也许在深入研究 Angular 之类的框架之前,您可能需要先熟悉整个 JavaScript 语言。话虽如此,如果您绝对必须/想要开始深入研究 Angular,请找到一个涵盖您感兴趣的主题的好示例项目,并模仿他们所做的事情,直到您了解正在发生的事情。
-
@Pytth 谢谢。学习整个 JS 需要很长时间。不过谢谢。我了解了 Angular 的承诺以及这个问题的原因。不过谢谢。我明白你的意思了。
标签: javascript angularjs node.js angularjs-http