基本上我想在我的工具提示中有一个 ul 元素。
我正在使用 Angular 5,以及适用于 Angular 5 的兼容材料。
是否可以使用自定义验证器将表单字段的输入与列表进行比较?我不想将两个表单控件相互比较。
我一直在尝试这种方法:
this.formGroupName = this.formBuilder.group({
category: ['', Validators.compose([Validators.required, this.checkCategoryInput(
this.formGroupName.get['category'].value, this.categoryList)])]
});
Run Code Online (Sandbox Code Playgroud)
在该checkCategoryInput()
方法中,我将“类别”表单控件的值与可接受类别列表进行比较。
public checkCategoryInput(input: string, categoryList: any[]): {[key: string]: boolean} | null{
console.log(input);
console.log(categoryList);
return null;
}
Run Code Online (Sandbox Code Playgroud)
但是,我在语法中迷失了方向,并在尝试使用这种方法时遇到了一些错误。有没有人有更好的方法将表单控件值与列表进行比较???
使用角材料 5.
我希望日期选择器显示 01/01/2000 而不是 1/1/2000。我阅读了文档,但没有看到与此相关的任何内容。
有没有简单的方法来实现这一点?或者我最终必须以某种方式创建自己的格式?
我有一个表单,其中有一个按钮,可以使用表单的内容发送电子邮件。我想使用 switchmap,因为我想防止用户垃圾点击并创建大量 HTTP 请求,但我不知道该怎么做。
使用 switchmap 之前:
this.customService.sendEmail(this.emailContents).subscribe(
data => { console.log("Success") }
)
Run Code Online (Sandbox Code Playgroud)
尝试使用 switchmap:
this.customService.sendEmail(this.emailContents).pipe(
switchMap(() => this.customService.sendEmail(this.emailContents))
)
.subscribe(
data => { console.log("Success") }
)
Run Code Online (Sandbox Code Playgroud)
但现在,点击按钮 3 次时,它会发送 12 封电子邮件,而不是发送 1 封电子邮件。我认为我在错误的地方使用它,但我真的不知道应该如何使用它......
我有一个像这样的键值对列表
{
apple: "Apple",
banana: "Banana"
}
Run Code Online (Sandbox Code Playgroud)
我想像这样将其转换为对象
[
{key: 'apple', value: 'Apple'},
{key: 'banana', value: 'Banana'}
]
Run Code Online (Sandbox Code Playgroud)
我是否只需要循环执行此操作?有没有更好的办法?