javascript - AngularJs 不使用 ngModel 序列化表单数据

标签 javascript angularjs forms

在继续我的问题之前,我知道如何使用 ngModelAngularJs 中获取表单数据,但它会带来一些问题,因为每次用户与表单交互时,它都会运行摘要循环,这可能会在我的应用程序的某些区域导致一些性能问题。

我知道我可以通过使用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、遍历其他区域等等......

Note: I can just use AngularJs (or pure JS) to do this.

最佳答案

如果您被允许使用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
});

关于javascript - AngularJs 不使用 ngModel 序列化表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41051031/

相关文章:

javascript - Django i18n Javascript 问题

javascript - 加载内容时的图像

javascript - 用逗号分隔的 ngTable 过滤器

javascript - Node.JS 在询问实际存在的端点时返回 404

javascript - 动态获取redux表单的字段

c# - 登录按钮的 If 语句

javascript - 有什么方法可以使用点语法按名称调用方法吗?

javascript - 如何修复我的 CSS 并使我的网站看起来像博客或杂志?

jQuery 选项卡在生产环境中不起作用

Javascript - 根据ajax响应停止表单提交