【发布时间】:2016-01-21 18:17:47
【问题描述】:
我正在尝试使用 Angular.js 通过 POST 方法发送两个输入值,但我无法在 URL 上传递这些值,甚至无法在服务器端捕获它们。 有人可以帮我解决这个问题吗?
对于每个按钮,我需要传递两个值 + 按钮值(operacao)
表格
<form id="form" ng-controller="Controller">
<input id="val1" name="val1" ng-model="val1" placeholder="Valor 1" type="text">
<input id="val2" name="val2" ng-model="val2" placeholder="Valor 2" type="text">
<input id="operacao" name="operacao" type="hidden" value="0">
<input id="soma" type="button" value="soma" ng-click="doClick(val1, val2)">
<input id="sub" type="button" value="sub">
<input id="mult" type="button" value="mult">
<input id="divs" type="button" value="divs">
<input id="resultado" type="text">
</form>
控制器
.controller("Controller", function($scope, operacaoService) {
$scope.model = {};
$scope.doClick = function(operacao) {
$scope.model.operacao = operacao;
operacaoService.postOperacao($scope.model)
.success(function(data, status) {
$scope.valores = data.result;
console.log(data.result);
})
.error(function(data, status) {
console.log("erro", status);
});
};
})
服务
module.factory('operacaoService', function($http) {
var postOperacao = function(model) {
return $http({
url: "/operacoes",
method: "post",
params: model
});
};
return {
postOperacao: postOperacao
};
});
服务器 (Node.js)
app.post('/operacoes', function(req, res) {
var valores = req.query;
var val1 = parseInt(valores.val1);
var val2 = parseInt(valores.val2);
var operacao = (valores.operacao);
var result;
if (operacao === "soma") {
result = val1 + val2;
res.send({
result: result,
val1: val1,
val2: val2,
operacao: operacao
});
}
}
【问题讨论】:
标签: javascript angularjs node.js post get