angularjs-控制器在表单提交时未调用
angularjs - controller not invoking upon form submit
我是AngularJS的新手,正在尝试以下示例代码将表单提交到服务器。
<!doctype html>
<html lang=''>
<head>
<meta charset="utf-8">
<script src="../js/angular.min.v1.5.5.js"></script>
<script>
var app = angular.module('myApp', []);
app.controller('myController', ['$location', function($scope, $location) {
console.log(" controller invoked ** ");
$scope.submit = function(emp) {
var isvalid = true;
if (isvalid) {
$http.put('/addEmployee', {}).then(function(result) {
$location.path(result.data);
});
return true;
}
return false;
}
}]);
</script>
</head>
<body ng-app="myApp" ng-controller="myController">
<form name="form1" ng-submit="form1.submit(emp)">
<input type="text" ng-model="emp.name" />
<div align='center'>
<input type="submit" value="Submit" />
</div>
</form>
</body>
</html>
我已经开始调试这个问题,我注意到在表单加载期间打印了一次"控制器调用**",但在表单提交之后没有打印。
你能提出提交表格所需的修改建议吗?
谢谢。
Form对象没有submit
方法,因为它在$scope
中可用,您需要直接调用它。不要对ng-submit
指令执行form1.submit(emp)
,而是将其更改为以下内容。
ng-submit="submit(emp)"
另外纠正控制器DI阵列中的错误
app.controller('myController', ['$location',
function($scope, $location) {
应该是
app.controller('myController', ['$scope', '$location', //<-- added missing $scope dependency here
function($scope, $location) {
将数据传递到方法的第二个参数中,目前您正在作为{}
传递空白对象,只需将其更改为emp
即可完成
$http.put('/addEmployee', emp).then(function(result) {
$location.path(result.data);
});
相关文章:
- angularjs-控制器在表单提交时未调用
- 在表单提交按钮的点击事件中调用函数时发生引用错误
- 表单提交没有'调用return false后无法工作
- 表单提交与 AJAX 轮询调用
- AJAX 调用和表单提交之间的延迟
- 未调用表单提交处理程序
- 单击表单提交按钮时调用经典ASP函数
- 在表单提交之前,save()内部的方法调用显示模板的返回
- 即使表单无效,也会调用HTML5表单提交处理程序
- 表单提交前的Ajax调用不起作用
- 表单提交成功后调用/执行JQuery函数
- 在表单提交之前调用函数 JavaScript
- 如何将简单的表单提交转换为 ajax 调用;.
- 服务器仅在表单提交时调用 preventDefault 时返回 500 错误
- 如何在表单提交期间进行 $.get 调用
- 文件上传器表单提交事件调用面板以显示包含文件更新程序我想删除代码重写在 jquery 中使用循环重写所有文件类型
- 由于未知原因,Angular按钮正在调用表单提交按钮
- Return false并不阻止在javascript中调用表单提交
- 关于javascript调用表单提交和恢复按钮
- twitter bootstrap 3-标记帮助程序在通过javascript调用表单提交时不绑定数据