1
A
回答
3
根據這個問題,可以有兩種情況。
一旦用戶填寫了字段並單擊SAVE按鈕,SAVE按鈕將最終發送PATCH請求以保存//更新值。
當用戶更改值時,需要進行請求。
爲1
你可以保持一個什麼樣的通過保持一個HashMap得到改變軌道。對所有用戶輸入字段使用ng-modal
指令。 我們假設有兩個輸入字段i。 username
和password
。
<input type="text" ng-modal="username" />
<input type="password" ng-modal="password" />
在你的控制器
$scope.userInfo = {
user: $scope.username,
pass: $scope.password
};
現在,如果有的話得到改變,這將反映在通過雙向綁定您的視圖和模型。
因此,現在您可以比較舊值和新值,並據此發送所需值。
爲2
使用角的watchCollection
。
scope.$watchCollection('[username, password]', function() {
// send a request
});
編輯
一個可以使用第二種方法去抖方法
// Returns a function, that, as long as it continues to be invoked, will not
// be triggered. The function will be called after it stops being called for
// N milliseconds. If `immediate` is passed, trigger the function on the
// leading edge, instead of the trailing.
_.debounce = function(func, wait, immediate) {
var timeout, args, context, timestamp, result;
var later = function() {
var last = _.now() - timestamp;
if (last < wait && last >= 0) {
timeout = setTimeout(later, wait - last);
} else {
timeout = null;
if (!immediate) {
result = func.apply(context, args);
if (!timeout) context = args = null;
}
}
};
return function() {
context = this;
args = arguments;
timestamp = _.now();
var callNow = immediate && !timeout;
if (!timeout) timeout = setTimeout(later, wait);
if (callNow) {
result = func.apply(context, args);
context = args = null;
}
return result;
};
};
來源:https://github.com/jashkenas/underscore/blob/master/underscore.js
1
沒有標準的方式。這是另一種無法看守的方法。您可以將「表單」作爲更新的參數傳遞,並使用「表單」來標識哪些控件已變髒。
http://plnkr.co/edit/8Og1m8eM54eOzKMDJtfJ?p=preview
.controller('ExampleController', ['$scope', function($scope) {
$scope.user = {}
var formFields = ['firstName', 'lastName'];
$scope.update = function(form, user) {
$scope.updatedFields = {};
angular.forEach(formFields, function(field) {
if (form[field].$dirty) {
$scope.updatedFields[field] = $scope.user[field];
//Temporarily set the field back to pristine.
//This is only for demo
form[field].$dirty = false;
}
});
};
}]);
你可以使用輸入名稱和型號相同的字符串。
<input type="text" ng-model="user.firstName" name="firstName"/>
相關問題
- 1. 貓鼬發送數據的角度
- 2. 角度只發送已更改的模型字段或已更改的複製模型
- 3. 如何發送表單數據體Alamofire
- 4. 如何發送json數據表單jQuery?
- 5. 如何發送數據表單?
- 6. Spring Boot只發送已更改的數據
- 7. 如何在發送聯繫表格7之前更改數據?
- 8. django rest框架評論表不發送數據(如何使用角度js發送和接收json數據)
- 9. 如何通過角度發送數據到服務器2
- 10. 如何將數據發送到角度爲REST API
- 11. 發送表單數據xmlhttprequest
- 12. PHP發送表單數據
- 13. 確保發送()數據已發送
- 14. 更新如果數據已更改,則僅觸發更新
- 15. 更改主機,標題已發送
- 16. 具有動態更改子表單的複雜角度表格
- 17. 如何觸發單元測試的角度ui-select指令的更改事件?
- 18. 角度提交表單數據
- 19. 角:發送複選框表單數據火力
- 20. 如何修改和更新角js中的數據錶行?
- 21. 角度圖 - 更改圖表的顏色
- 22. 如何更改角度傳單地圖的語言?
- 23. 使用角度跨過域名發佈表單數據
- 24. 無法發送表單的POST數據
- 25. 角度$ http發佈不發送服務數據
- 26. $在角HTTP如何從表單數據發佈中的NodeJS
- 27. 單擊鏈接時不發送表單而發送POST數據?
- 28. 更改數據時無法更新角度2中的模板
- 29. 如何更改角度Cli束路徑?
- 30. 如何通知Java程序數據庫的數據已更改
角度沒有任何建設,爲你問 – harishr
我猜你的形式是非常大,還有一個原因,發送的所有數據是不可選的。在這種情況下,您必須編寫自己的邏輯來確定發生了什麼變化,並且只發送POST中已更改的數據。 –
您應該有一個最終對象發送,比如'$ scope.final_data',並在您的表單中你應該使用一些指令,比如'ng-change',每當你改變一個模型時,將它添加到'final_data'中。 –