如何从Angular中的相同单词创建一个筹码

问题描述 投票:-1回答:1

我想知道是否有余力让我用相同的单词仅创建一个筹码而不是创建重复的筹码。

现在,用户似乎可以创建“苹果”,“苹果”,“ apPPle”,“ aPpLe”,因此,我想出了一种不这样做的方法,即使他们使用大写字母或大写字母键入内容,也总是返回小写字母“苹果”小写。

我只想为一个单词创建一个芯片。任何帮助或建议将不胜感激。

我已经尝试了所有这一切,但仍然无法正常工作

1. this.value = $event.target.value.toUpperCase()
    this.ngModelChange.emit(this.value)

2. event.value=event.value.toLowerCase()

3. {{ value | lowercase }}

如果我可以解决这个问题,那么用户可能可以多次创建“ apple”“ apple”,但是稍后,如果“ apple”已经存在/创建,我将阻止用户输入相同的单词。

这里是与我非常相似的项目

https://stackblitz.com/edit/angular-occkra

  allSuperTagNames: Array<String> = new Array<String>();
 superTags: Tag[] = [];

    if ((value || '').trim()) { 
        if (this.allSuperTagNames.find((f) => f.toLowerCase() === value.toLowerCase()) &&  !this.superTags.find((f) =>  f.toLowerCase() === value.toLowerCase())) 
        {
            this.superTags.push({ tag: value.trim().toLowerCase, type: TagType.super }); 
            this.tagService.addTag(this._workspace.guid, 'workspace', value).subscribe((tag) => console.log("added", tag));
        } 
     } 
html angularjs angular typescript angular-material
1个回答
0
投票

您需要在selectadd方法中添加过滤逻辑:

if ((value || '').trim()) {
  if (this.allFruits.includes(value.toLowerCase()) && !this.fruits.includes(value.toLowerCase())) {
    this.fruits.push(value.trim().toLowerCase());
  }
}

include

if ((value || '').trim()) {
  if (this.allFruits.find((f) => f.toLowerCase() === value.toLowerCase()) && !this.fruits.find((f) => f.toLowerCase() === value.toLowerCase())) {
    this.fruits.push(value.trim().toLowerCase());
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.