在继续我的问题之前,我知道要使用AngularJs
在ngModel
内获取表单数据,但它会产生一些问题,因为每次用户与表单交互时都会运行摘要循环,这可能会在我的应用程序的某些方面导致一些性能问题。
我知道我可以通过使用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)来执行此操作。
答案 0 :(得分:1)
如果您被允许使用jQuery (not just 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
});