我使用相同的form
來創建和更新數據庫中的用戶。我可以正確更新,但是當我創建一個用戶時,請提交兩次發送並在數據庫中創建兩個相同的用戶。Ng-submit使用RouteProvider調用兩次
我在RouteProvider
。
.config(function($routeProvider) {
$routeProvider
.when("/users", {
controller: "MainControlador",
templateUrl: "templates/users.html"
})
.when("/user/:id", {
controller: "UserControlador",
templateUrl: "templates/user.html"
})
.when("https://stackoverflow.com/users/edit/:id", {
controller: "UserControlador",
templateUrl: "templates/form.html"
})
.when("https://stackoverflow.com/users/new", {
controller: "NewUserControlador",
templateUrl: "templates/form.html"
})
.when("/", {
templateUrl: "templates/main.html"
})
.otherwise("/");
})
這是我form
<div>
<form ng-submit="saveUser()">
<input ng-model="user.name" type="text" required>
<input ng-model="user.surname" type="text" required>
<input ng-model="user.phone" type="text"required>
<input ng-model="user.email"type="text" required>
<input type="submit">
</form>
</div>
最後我用這個controller
//Controller Update
.controller("UserControlador", function($scope, $routeParams, UserAPI) {
$scope.title = "Edit user";
UserAPI.getOne($routeParams.id).success(function(data) {
//Get Array First Element
$scope.user = data[0];
})
$scope.saveUser = function() {
var data = ({
id: $routeParams.id,
name: $scope.user.name,
surname: $scope.user.surname,
phone: $scope.user.phone,
email: $scope.user.email
});
UserAPI.update(data).success(function(data) {
$scope.user = data;
})
}
})
//Controller Create
.controller("NewUserControlador", function($scope, UserAPI) {
$scope.title = "Add user";
$scope.saveUser = function() {
var data = ({
name: $scope.user.name,
surname: $scope.user.surname,
phone: $scope.user.phone,
email: $scope.user.email,
});
UserAPI.create(data).success(function(data) {
console.log(data);
$scope.user = data;
})
}
})
¿任何想法,這裏發生什麼事?我試圖使用console.log,但顯然所有工作正常。我試圖使用過角的batarang來調試角度調用,但不工作。
你能提供你的提交輸入嗎? – Korte
提交返回正確的值。也許錯誤是函數調用。 –
我在'form'標籤裏面沒有看到任何負責提交表格的按鈕 –