我对Angular很新,我被卡住了。
我有一个表单,当用户没有填写必填字段时,会在提交时出错。我希望此错误显示在模态上,而不是在页面上给出错误(如附件)。
就像当用户没有填写必填字段并点击提交时,会出现一个模式,告诉我们出了什么问题。
我如何创建错误模式?我想为此错误创建一个新组件,因为我希望能够在各种页面上使用此组件。
onSubmit() {
//do something
}, err => {
//How would I make my error component open when there is an error here.
console.log("err");
}
}
答案 0 :(得分:2)
我无法将屏幕截图粘贴到我的评论中,所以这里是我正在谈论的内容的图片。
Angular模板驱动和Angular反应形式都设置为显示错误消息,例如这些。
要真正回答您的问题......有一个在此处创建模型的示例:http://jasonwatmore.com/post/2017/01/24/angular-2-custom-modal-window-dialog-box
或者你可以在这里使用材料设计的模态:https://material.angular.io/components/dialog/overview
在模板中:
<my-error-component *ngIf="isError"></my-error-component>
在组件中:
isError: boolean
onSubmit() {
//do something
}, err => {
isError = true;
console.log("err");
}
}
答案 1 :(得分:0)
使用命名路由器插座,您可以非常轻松地创建引导模式:
<强> app.component.html 强>
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'modal',
template: `
<div class="modal fade in show" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title">Modal title</h4>
</div>
<div class="modal-body">
<p>One fine body…</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<div class="modal-backdrop fade in"></div>
`
})
export class ModalComponent implements OnInit {
constructor() { }
ngOnInit() { }
}
<强> modal.component.ts 强>
import { RouterModule } from '@angular/router';
import { ModalComponent } from './modal.component';
@NgModule({
imports: [
BrowserModule,
RouterModule.forRoot(
[{ path: 'open', component: ModalComponent, outlet: 'modal'}]
)
],
declarations: [ AppComponent, ModalComponent ],
bootstrap: [ AppComponent ],
exports: [AppComponent]
})
export class AppModule {
}
<强> app.module.ts 强>
<a [routerLink]="[{ outlets: { modal:'open' }}]">Click Me</a>
要触发模态,请创建一个链接:
constructor(private router: Router) {
}
openDialog() {
this.router.navigate([{ outlets: { modal:'open' }}]);
}
或者注入路由器并导航到&#39;打开&#39;:
<a [routerLink]="[{ outlets: { modal:null }}]">Click Me</a>
关闭对话框:
closeDialog() {
this.router.navigate([{ outlets: { modal: null }}]);
}
或者
static void Main(string[] args) {
//variable declarations
const int SIZE = 26;
char[]
alpha = new char[SIZE];
//function calls
FillAlpha(alpha);
Console.WriteLine("Print Original List A-Z:");
PrintAlpha(alpha);
ReverseAlpha(alpha);
Console.WriteLine("\nPrint Reversed List Z-A:");
PrintAlpha(alpha);
Console.Write("\n\nPress any key to continue:");
Console.ReadKey();
}
static void FillAlpha(char[] letters) {
for (int i = 0; i < 26; i++) {
letters[i] = (char)(i + 65);
}
}
static void PrintAlpha(char[] letters) {
foreach(char c in letters)
Console.Write(c + " ");
Console.WriteLine();
}
static void ReverseAlpha(char[] letters) {
char a, b, temp;
temp = a;
a = b;
b = temp:
}
答案 2 :(得分:0)
如果您想在 onSubmit 上显示任何错误,那么您可以使用与angular2最佳兼容的材质设计对话框。
下面是代码和运行示例的链接,了解如何打开对话框 Click here for demo code
下面的是材料设计中Modal官方文档的链接
Check official doc for dialog in Angular2
希望这会对你有所帮助:)。