gpt4 book ai didi

javascript - angularjs - Controller 在表单提交时不调用

转载 作者:行者123 更新时间:2023-12-02 14:38:00 25 4
gpt4 key购买 nike

我是 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>

我已经开始调试这个问题,我注意到“ Controller 调用**”在表单加载期间打印一次,但在表单提交后没有打印一次。

您能否帮忙提出提交表单所需的更改建议?

谢谢。

最佳答案

表单对象没有submit方法,因为它在$scope中可用,您需要直接调用它。不要在 ng-submit 指令上执行 form1.submit(emp),而是将其更改为下面的内容。

ng-submit="submit(emp)"

另外纠正 Controller DI数组中的错误

app.controller('myController', ['$location', 
function($scope, $location) {

应该是

app.controller('myController', ['$scope', '$location',  //<-- added missing $scope dependency here
function($scope, $location) {
<小时/>

将数据传递给 put 方法的第二个参数,当前您正在作为 {} 空白对象传递,只需将其更改为 emp 即可解决问题

$http.put('/addEmployee', emp).then(function(result) {
$location.path(result.data);
});

关于javascript - angularjs - Controller 在表单提交时不调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37272663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com