私は$http
というデータをサーバーに保存し、jsonで応答を受け取るという要求を送信しています。私は応答に基づいて成功または失敗のメッセージのようなアンドロイドToast
を表示したい。 スコープ変数を宣言し、最初に$scope.showSuccessToast
にfalseに設定します。サーバーからのメッセージが肯定的であれば、それをtrueに、それ以外をfalseに設定します。jqueryのスコープ変数の即値にアクセスする方法
htmlのjavascript関数で変数$scope.showSuccessToast
にアクセスします。これは、サーバが保存するために呼び出されたときに呼び出されます。私はng-click
とonclick
の両方を使用しています。
したがって、$scope.showSuccessToast
が真の場合、私は成功メッセージまたは失敗メッセージを表示します。しかし、初めてサーバーからの応答が肯定的であっても、失敗メッセージが表示されます。そのため、関数が変数にアクセスするまでに値がtrueに設定されていない可能性があります。次回は応答が失敗したと思っても、私は成功メッセージを受け取ります。
私は、これは、応答HTMLで
$scope.showSuccessToast="false";
$scope.saveTollPlaza = function(){
$http({
method:'POST',
url:"http://192.168.1.191:3020/addTollPlaza?PlazaName="+$scope.plazaname+"&PlazaAddress="+$scope.plazaaddress+"&PlazaContactNo="+$scope.plazacontactnumber+"&PlazaLanes="+$scope.plazalane+"&PlazaStatus="+$scope.plazastatus+"&ClientID="+$scope.clientid
})
.then(function success(response){
console.log("success" + response.data.message);
console.log("http://192.168.1.191:3020/addTollPlaza?PlazaName="+$scope.plazaname+"&PlazaAddress="+$scope.plazaaddress+"&PlazaContactNo="+$scope.plazacontactnumber+"&PlazaLanes="+$scope.plazalane+"&PlazaStatus="+$scope.plazastatus+"&ClientID="+$scope.clientid);
$scope.plazaname="";
$scope.plazaaddress="";
$scope.plazacontactnumber="";
$scope.plazalane="";
$scope.plazastatus="";
$scope.clientid="";
if(response.data.message == 'added'){
$scope.showSuccessToast="true";
console.log("setting true");
}
else{
$scope.showSuccessToast="false";
console.log("setting false");
}
},function errorCall(response){
console.log("errorCall"+ response);
})
スクリプトに基づいて実現するために何をしますか:
<script type="text/javascript">
function jShowToast() {
console.log($('#fullContainerID').scope().showSuccessToast);
if($('#fullContainerID').scope().showSuccessToast == "true")
{
document.getElementById("successFailureDiv").innerHTML="Save Success";
$('.error').stop().fadeIn(400).delay(3000).fadeOut(400); //fade out after 3 seconds
$('#fullContainerID').scope().showSuccessToast ="false";
}
else{
document.getElementById("successFailureDiv").innerHTML="Save failed";
$('.error').stop().fadeIn(400).delay(3000).fadeOut(400);
}
}
</script>
また、 'jShowToast'で' setTimeout'関数を使って動作させました。 – boo