[英]AngularJs Serialize form data without using ngModel
在繼續我的問題之前,我知道可以使用ngModel
在AngularJs
獲取表單數據,但是這會帶來一些問題,因為每次用戶與表單進行交互時,它將運行摘要周期 ,這可能會在我的應用程序的某些區域導致性能問題。
我知道我可以使用ngModelOption
對此進行“某些”控制,但是使用ngModelOption
並不簡單,因為我需要將其應用於表單中的每個ngModel
。 至少我不知道解決這種情況的另一種方法。
基本上,我需要一個簡單的表單,不需要立即更新任何內容(例如,有關登錄表單,用戶注冊的信息,例如,我們只需要收集數據並將其發送到數據庫)。
就這么簡單:
<form name="loginForm" novalidate ng-submit="loginForm.$valid && vm.login()">
<input type="email" name="email" placeholder="E-mail" required />
<input type="password" name="password" placeholder="Password" required />
<button>Login</button>
</form>
但是,如果沒有在AngularJs中使用所有事件,則將觸發digestCycle,遍歷其他區域,等等。
注意:我可以只使用AngularJs(或純JS)來做到這一點。
如果允許您使用jQuery(而不僅限於jqLite) 。 然后,您可以執行此操作以序列化表格
html
<div ng-controller="MyCtrl">
<form id="loginForm" name="loginForm" novalidate ng-submit="loginForm.$valid && vm.login()">
<input type="email" name="email" placeholder="E-mail" required />
<input type="password" name="password" placeholder="Password" required />
<button type='button' ng-click="LogIn()">Login</button>
</form>
</div>
腳本
angular.module('myApp', []).controller('MyCtrl', function($scope) {
$scope.LogIn = function()
console.log(angular.element('#loginForm').serialize());//Check
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.