我试图通过$ http.post从AngularJS传递一个表单到Sailsjs
My Sails Controller
create: function(req, res) {
console.log("req: "+req.param('user.firstName'));
res.send(req.param('user.firstName'));
},
我的角度控制器
function RegisterController($scope, $http) {
$scope.submit = function(){
console.log($scope.user.firstName); // works fine so far
$http.post('/user/create', $scope.user)
.success(function(data, status, headers, config) {
console.log("success");
})
.error(function(data, status, headers, config) {
console.log("error");
});
}
}
如果我调用我的sails函数就像这样/user/create?user.firstName=myFirstName,它的工作正常。但是,如果我从角度传递,我会尝试读取传递的数据。我不知道。我看不懂那个......
有人有任何想法或小例子吗?
干杯真棒社区=)
答案 0 :(得分:2)
您将$scope.user
对象发布到您的路线,因此它不会在user
下命名。如果$scope.user
包含,例如:
{firstName: "John", lastName: "Doe"}
然后它们将在您的控制器操作中显示为req.param('firstName')
和req.param('lastName')
。
如果您要将整个 $scope
对象发布到/user/create
(请勿执行此操作!),那么您将能够访问req.param('user').firstName
,req.param('user').lastName
等。但您仍然无法访问req.param('user.firstName')
之类的内容;这些是Angular表达式,但它们在服务器端不起作用。