Javascript Angularjs:http post不工作
我正在设计一个简单的页面,它将从用户那里获取开始和结束日期,验证并发布 下面是我的HTML代码Javascript Angularjs:http post不工作,javascript,angularjs,post,Javascript,Angularjs,Post,我正在设计一个简单的页面,它将从用户那里获取开始和结束日期,验证并发布 下面是我的HTML代码 <body> <div ng-app="appTable"> <div ng-controller="Allocation"> Select start date: <input type="text" datepicker ng-model="start_d
<body>
<div ng-app="appTable">
<div ng-controller="Allocation">
Select start date:
<input type="text"
datepicker
ng-model="start_date" />
<br>
<br>
Select end date:
<input type="text"
datepicker
ng-model="end_date" />
<br>
<br>
<button ng-click="Submit()"> Submit </button>
{{msg}}
{{test1}}
{{test2}}
</div>
</div>
</body>
选择开始日期:
选择结束日期:
提交
{{msg}}
{{test1}}
{{test2}}
以下是aj脚本:
<script>
var app = angular.module("appTable", []);
app.controller("Allocation", function($scope) {
$scope.start_date = "2017-05-01";
$scope.end_date = "2017-05-19";
$scope.Submit = function() {
var start = new Date($scope.start_date);
var end = new Date($scope.end_date);
if (start > end) {
$scope.msg = "Start date must be less than the end date."
} else {
$scope.msg = "";
$scope.test = "";
$scope.postData($scope.start_date, $scope.end_date);
}
};
$scope.postData = function(s_date, e_date) {
var data = {
s_date: s_date,
e_date: e_date,
};
$scope.test1 = "Post called 1";
$http.post('/view_status/', data).then(function(response) {
$scope.test2 = "Post called 2";
if (response.data)
$scope.msg = "Post Data Submitted Successfully!";
}, function(response) {
$scope.msg = "Service not Exists";
$scope.statusval = response.status;
$scope.statustext = response.statusText;
$scope.headers = response.headers();
});
};
});
app.directive("datepicker", function() {
function link(scope, element, attrs, controller) {
// CALL THE "datepicker()" METHOD USING THE "element" OBJECT.
element.datepicker({
onSelect: function(dt) {
scope.$apply(function() {
// UPDATE THE VIEW VALUE WITH THE SELECTED DATE.
controller.$setViewValue(dt);
});
},
dateFormat: "yy-mm-dd" // SET THE FORMAT.
});
}
return {
require: 'ngModel',
link: link
};
});
</script>
var app=angular.module(“appTable”,[]);
应用控制器(“分配”,功能($scope){
$scope.start_date=“2017-05-01”;
$scope.end_date=“2017-05-19”;
$scope.Submit=函数(){
var start=新日期($scope.start\u Date);
var end=新日期($scope.end\u Date);
如果(开始>结束){
$scope.msg=“开始日期必须小于结束日期。”
}否则{
$scope.msg=“”;
$scope.test=“”;
$scope.postData($scope.start\u date,$scope.end\u date);
}
};
$scope.postData=函数(s_日期、e_日期){
风险值数据={
s_日期:s_日期,
e_日期:e_日期,
};
$scope.test1=“Post called 1”;
$http.post('/view_status/',data)。然后(函数(响应){
$scope.test2=“Post called 2”;
if(response.data)
$scope.msg=“提交数据成功!”;
},功能(回应){
$scope.msg=“服务不存在”;
$scope.statusval=response.status;
$scope.statustext=response.statustext;
$scope.headers=response.headers();
});
};
});
指令(“日期选择器”,函数(){
功能链接(范围、元素、属性、控制器){
//使用“element”对象调用“datepicker()”方法。
元素日期选择器({
onSelect:函数(dt){
作用域$apply(函数(){
//使用所选日期更新视图值。
控制器$setViewValue(dt);
});
},
日期格式:“yy-mm-dd”//设置格式。
});
}
返回{
要求:'ngModel',
链接:链接
};
});
出于调试目的,我使用了两个标志test1和test2,它们将在POST服务调用之前和之后打印消息。
标记test1正在打印消息,但是test2、msg没有打印任何内容。
如果我遗漏了什么,请帮助。您需要将$http注入控制器将
$http
注入控制器才能访问$http.post
例如:
app.controller(“Allocation”,function($scope,$http){
您是否收到任何错误?从服务中,尝试记录它,如果有,它是否转到错误块?此行执行$scope.msg=“服务不存在”;您能检查错误响应吗returns@bhuvan,不,它不会阻止错误。因为没有打印消息。您能看到您的浏览器控制台窗口有任何错误吗?@Immanuel Kirubaharan,@anoop:浏览器日志显示在下面:$http未定义