2016-01-20 115 views
0

我正在开发一个angular-js项目。我想通过ng-submit提交表单。但这不行。 我的HTML代码angular ng-submit无法正常工作

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <title>AngularJS Routes example</title> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.5/angular.min.js"></script> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.5/angular-route.min.js"></script> 
</head> 

<body ng-app="sampleApp" class="container"> 

<div class="btn-group"> 
    <a href="/view" class="btn btn-info">List</a> 
<a href="/add" class="btn btn-danger">Add New</a> 
</div> 
<hr> 

<div ng-view></div> 

<script> 
    var module = angular.module("sampleApp", ['ngRoute']); 

    module.config(['$routeProvider','$locationProvider', 
     function($routeProvider,$locationProvider) { 
      $routeProvider. 
        when('/view', { 
         templateUrl: 'template/view/list', 
         controller: 'RouteController' 
        }). 
        when('/add', { 
         templateUrl: 'template/view/new', 
         controller: 'RouteController' 
        }). 
        otherwise({ 
         redirectTo: '/view' 
        }); 
        $locationProvider.html5Mode(true); 
     }]); 

    module.controller("RouteController", function($http,$scope, $routeParams) { 
     $http.get('welcome/phones').success(function(data) { 
      $scope.phones = data; 
     }); 

     $scope.formData = {}; 

     $scope.saveInfo = function() { 

      formData = $scope.form; 
      console.log(formData); 

      $http.post('welcome/save',formData); 
     } 
    }); 
</script> 



</body> 
</html> 

我的表单模板

<form action="#" ng-submit="saveInfo()" method="post" ng-controller="RouteController"> 
    <div class="form-group"> 
     <label for="">Product</label> 
     <input type="text" name="name" ng-model="form.name" class="form-control"> 
    </div> 
    <div class="form-group"> 
     <label for="">Price</label> 
     <input type="text" name="price" ng-model="form.price" class="form-control"> 
    </div> 
    <div class="form-group"> 
     <input type="submit" class="btn btn-info" value="Submit"> 
    </div> 
</form> 

/add/view ROURE做工精细。但是当我提交表格时,ng-submit不起作用。表单直接提交。我在控制台中没有得到任何东西。我的问题在哪里?谢谢。

回答

2

尝试intializing $ scope.form:

$scope.formData = {}; 
$scope.form = {}; 
+0

谢谢。我得到了我的问题,当我删除'action =“#”'属性时,一切都很好。 –

1
module.controller("RouteController", function($http,$scope, $routeParams) { 
    $http.get('welcome/phones').success(function(data) { 
     $scope.phones = data; 
    }); 

    $scope.formData = {}; 
    $scope.form = {}; 
    $scope.saveInfo = function() { 

     $scope.formData = $scope.form; 
     console.log($scope.formData); 

     $http.post('welcome/save', $scope.formData); 
    } 
}); 
+0

谢谢。我得到了我的问题,当我删除'action =“#”'属性时,一切都很好。 –

0

基于您所提交的代码,你不打算使用$scope.formData。我认为它是你犯的一个错字。只需将其改为$scope.form = {}

$scope.form = {}; // instead of $scope.formData