[英]AngularJS 'PUT' requests. How to submit ONLY the data in form?
我正在嘗試更新用戶數據,但是當我發出“ PUT”請求時,Angular將發送整個用戶$ scope,而不僅僅是發送表單公開的字段。
我正在使用工廠來獲取和放置數據。 這是我的編輯功能
$scope.editStudent = function () {
Student.edit ({id: $stateParams.studentId}, $scope.Student, function (data) {
$location.path('/');
});
};
這對我來說不起作用,因為我要發送的服務器是它自己的服務器端驗證,並且如果我要發送整個學生范圍,則某些字段將為空白,因此不會通過驗證。
服務器允許我僅發送需要更新的字段,因此我正在尋找一種實現此目的的Angular方法。
這是一個截圖,可以幫助解釋我的問題:
您可以編寫函數來檢查表單中定義的字段,然后僅提交值。 我認為代碼是不言自明的。
代碼段
app.controller('MainCtrl', function($scope, $http) {
$scope.user = {
"name": "Ali",
"company": "MSB",
getData: function(form) {
var data = {};
angular.forEach(this, function(fieldValue, fieldName) {
if (!angular.isFunction(fieldValue) && form.$isSubmit(fieldName)) {
data[fieldName] = fieldValue;
}
});
return data;
}
}
$scope.save = function() {
$scope.userForm.$isSubmit = function(fieldName) {
return !angular.isUndefined((this[fieldName]));
}
console.log($scope.user.getData($scope.userForm));
$scope.data = $scope.user.getData($scope.userForm);
//$http.put('url', $scope.data)
}
});
我創建了plunkr- http: //plnkr.co/edit/6g5myBvBmWZ2IvKMLuvL?p=preview
*提示(或規則)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.