簡體   English   中英

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>

我已經開始調試該問題,我注意到在加載表單時打印了“控制器調用**”,但是在提交表單后卻沒有打印。

建議您提交表格所需的更改,以幫助您嗎?

謝謝。

表單對象沒有submit方法,因為它在$scope可用,您需要直接調用它。 與其在ng-submit指令上執行form1.submit(emp)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) {

將數據傳遞到put方法的第二個參數中,當前您正在傳遞{}空白對象,只需將其更改為emp就可以了

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM