- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 Ionic4
第一次和 ngSubmit
苦苦挣扎不触发登录页面中的相应方法。虽然它总是成功地击中 LoginPage
构造函数和 AuthService
构造函数。所有相应的模块都已导入,也没有控制台错误。我究竟做错了什么 ?
login.page.html:
<ion-header>
<ion-toolbar>
<ion-title>
Login
</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<form (ngSubmit)="login()" [formGroup]="loginForm">
<ion-grid>
<ion-row>
<ion-col>
<ion-item>
<ion-input type="text" placeholder="Email" formControlName="email" style="width:50%;"></ion-input>
</ion-item>
</ion-col>
</ion-row>
<ion-row>
<ion-col col-3>
<ion-item>
<ion-input type="password" placeholder="Password" formControlName="password" style="width:50%;"></ion-input>
</ion-item>
</ion-col>
</ion-row>
</ion-grid>
<div padding-horizontal>
<div class="form-error">{{loginError}}</div>
</div>
<ion-grid>
<ion-row>
<ion-col>
<ion-button type="submit" [disabled]="!loginForm.valid" color="primary">Log in</ion-button>
<a href="#">Forgot password?</a>
</ion-col>
</ion-row>
<ion-row>
<ion-col>
<ion-button icon-left block clear (click)="loginWithGoogle()" color="secondary">
<ion-icon name="logo-google"></ion-icon>
Log in with Google
</ion-button>
<ion-button icon-left block clear (click)="signup()" color="primary">
<ion-icon name="person-add"></ion-icon>
Sign up
</ion-button>
</ion-col>
</ion-row>
</ion-grid>
</form>
</ion-content>
import { Component, OnInit } from '@angular/core';
import { AuthService } from '../common/services/auth.service';
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
import { Router } from '@angular/router';
@Component({
selector: 'app-login',
templateUrl: './login.page.html',
styleUrls: ['./login.page.scss'],
})
export class LoginPage implements OnInit {
loginForm: FormGroup;
loginError: string;
constructor(private auth:AuthService,
private router:Router,
private fb: FormBuilder)
{
this.loginForm = this.fb.group({
email: ['', Validators.compose([Validators.required, Validators.email])],
password: ['', Validators.compose([Validators.required, Validators.minLength(6)])]
});
}
ngOnInit() {}
login() {
alert('login');
let data = this.loginForm.value;
if (!data.email) {
return;
}
let credentials = {
email: data.email,
password: data.password
};
this.auth.signInWithEmail(credentials)
.then(
() => this.router.navigate(['/home']),
error => this.loginError = error.message
);
}
}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule,ReactiveFormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';
import { IonicModule } from '@ionic/angular';
import { LoginPage } from './login.page';
const routes: Routes = [
{
path: '',
component: LoginPage
}
];
@NgModule({
imports: [
CommonModule,
FormsModule,
ReactiveFormsModule,
IonicModule,
RouterModule.forChild(routes),
],
entryComponents: [LoginPage],
declarations: [LoginPage]
})
export class LoginPageModule {}
import { Injectable } from '@angular/core';
import { AngularFireAuth } from 'angularfire2/auth';
import * as firebase from 'firebase/app';
import AuthProvider = firebase.auth.AuthProvider;
@Injectable({
providedIn: 'root'
})
export class AuthService {
private user: firebase.User;
constructor(public afAuth: AngularFireAuth) {
afAuth.authState.subscribe(user => {
this.user = user;
});
}
signInWithEmail(credentials) {
console.log('Sign in with email');
return this.afAuth.auth.signInWithEmailAndPassword(credentials.email,
credentials.password);
}
}
最佳答案
ngSubmit
正在重新加载整个页面,因此它只命中登录构造函数,而不是相应的方法。已删除 (ngSubmit)
在 <form>
, type="submit"
在 <ion-button>
, 添加 (click)="login()"
事件到<ion-button>
.它开始工作了。
关于angular4-forms - Ionic4 ngSubmit 未在提交时触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51699245/
您好,我有一个指令,可以在单击按钮时更改选项卡。我只想从指令内部调用 ngSubmit 进行表单验证。可能吗? 指令 angular.module 'myapp' .directive 'nextBu
我刚刚启动 Angular2 并在添加 时遇到以下错误(ngSubmit) 归因于我的表单 Template parse errors: There is no directive with "exp
我有一个 angular 4 表单,我正在尝试提交数据 HTML 代码 Scheduler Schedule Job 按钮代码 Can
所以一段时间以来,我一直在问自己是应该使用 ngSubmit 还是只在按钮上绑定(bind) (click)="submit()"。 关于 submit 和 ngSubmit 有很多问题,但我们真的需
有以下代码:
我想知道是否有一种方法可以提交仅包含 $dirty 字段的表单,目前我正在使用 ng-change 手动将每个字段添加到请求中关于改变。但问题是,它的可重用性不太好。 在 form.html 中 在
我在表单中有一个输入和一个按钮。 我想输入内容并按回车键,提交输入内容并触发模式打开,显示结果。我不知道如何在 ng-submit 上触发模式而不需要自定义/hacky。有一个可以理解的方法吗? 目前
我有一个登录表单,我想在其中验证电子邮件 ID 和密码。我试过将 id 和密码传递给 typescript 文件。但只有电子邮件 ID 被传递而不是密码。这是 HTML 代码。
使用 Ionic4第一次和 ngSubmit 苦苦挣扎不触发登录页面中的相应方法。虽然它总是成功地击中 LoginPage构造函数和 AuthService构造函数。所有相应的模块都已导入,也没有控制
使用 ngSubmit 提交表单而不是在 Angular 2 的提交按钮处使用 onSubmit 的原因是什么。 最佳答案 ngSubmit 是 Angular2 的内置指令,用于在不点击任何提交按钮
Angular 说的... [ngSubmit] prevents the default action (which for form means sending the request to th
我对 AngularJS 和 javascript 比较陌生,请在回答时仁慈一点。 我正在尝试创建一个示例应用程序,我想在其中嵌套 Controller 。 MainController 将始终作为父
我正在使用 Angular 2 和 TypeScript 构建一个 ionic 3 应用程序。我的应用程序中有一个表单,负责将数据发送到我们的服务器。我现在的问题是,当我单击此按钮时: Morgen
我的 Angular2 表单组件上有两个按钮。该按钮正在执行自己的功能。 按钮提交:将所有值提交给 API。 按钮添加。 : 将对象推送到数组。 这两个方法在这里... onSubmit() { th
我正在 Angular 2 应用程序中构建表单。 Html 给我提交事件。在 Angular 中,我可以使用(提交)事件绑定(bind)来监听这个事件。最重要的是,Angular 添加了 ngSubm
我有两个表单,它们在提交时触发验证,然后才显示给用户。但是,我需要同时在两个表单上触发此提交,以便显示需要填写的字段。 现在我有类似的东西 ... Submit 并在组件中 @Vi
这是一个带有所需输入的简单表单: --> 该表单使用自定义 pressEnter 指令,因为我不愿意使用 在我的标记中,即使我可以用绝对定位
自定义组件 // ... @Output() submit: EventEmitter = new EventEmitter(); // ... onFilterSubmit($event): vo
我有一个表单,我正在尝试使用 ng-submit,但它没有调用 Controller 函数 submit() index.html ... -->
我的 app.component.html 文件中有一个如下所示的表单,当我单击“发送”按钮提交表单时,我在 Javascript 中收到一条错误消息,指出 chatForm 未定义。 我已经查看了几
我是一名优秀的程序员,十分优秀!