我正在学习Angularjs并希望使用$ http.post()方法。 在HTML中 在Javascript中
$scope.onevariable ='value1'
$scope.doSomething = function(){
$scope.onevariable = 'value2';
$http.post('someurl',{onevariable:$scope.onevariable }).then(function(){...})}
问题是我想将更改后的$ scope.onevariable作为参数发布到服务器,并且在单击按钮后必须更改此变量。但是,这个$ scope.onevariable可以在更改为' value2'之前发布,所以如何在更改值后准确发布它。 '值2'对我来说是未知值,或者是加密字符串,您可以将其视为随机字符串。
答案 0 :(得分:2)
好吧,我不知道我是否理解你的问题,但这里有一段代码:
var app = angular.module('app', []);
app.controller('mainCtrl', function($scope) {
$scope.onevariable ='';
$scope.post = false;
var increment = 0;
$scope.changeVar = function() {
$scope.onevariable = 'value' + ++increment;
}
$scope.$watch('onevariable', function(newValue, oldValue) {
if (newValue != oldValue && newValue == 'value2') {
doPost();
}
});
function doPost () {
// post
$scope.post = true;
}
});
<!DOCTYPE html>
<html ng-app="app">
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.7/angular.min.js"></script>
</head>
<body ng-controller="mainCtrl">
<button ng-click="changeVar()">Click me</button>
<hr ng-if="onevariable" />
<code ng-bind="onevariable"></code>
<hr />
<code ng-bind="'Post? ' + post"></code>
</body>
</html>
答案 1 :(得分:1)
我认为$ watch会是一个选项
$scope.$watch('onevariable', function(newValue, oldValue) {
$http.post('someurl',{onevariable:newValue }).then(function(){...})}
});