Lin*_*ter 5 listitem mouseclick-event angular
我是一名开始在 Angular 5 上训练的学生。我想即使在 Angular 2 上我的问题也可能是一样的。
对于一个项目,我目前正在尝试创建一个简单的搜索输入,用户可以在其中写入城市名称,并且该字段将在下面建议一些名称。然后,当用户单击列表中的某个项目时,它将显示在输入中。实际上它的行为应该与谷歌搜索栏非常相似。
这是砰的一声。我想它不会运行得很顺利,因为我只是放置了正确的文件来理解,而不是我的整个应用程序。
这是我的文件:input-form.component.html:
<input
type="text"
class="form-control"
id="InputCity"
[(ngModel)]="searchText"
formControlName="city"
(click)="displayCities()">
<ul class="results">
<li>
<a
class="list-group-item"
style="cursor: pointer"
*ngFor="let city of citiesListInput | filter : searchText"
(click)="putIntoField(city)">
{{ city }}
</a>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
input-form.component.ts(简而言之):
export class InputFormComponent implements OnInit {
citiesListInput: string[];
constructor(private citiesSvc: CitiesService) { }
//Get list of cities from a service//
displayCities() {
this.citiesListInput = this.citiesSvc.citiesList;
}
//Should send the city clicked in the list in the input field.//
//For now i just console log it//
putIntoField(city: string) {
console.log(city);
}
}
Run Code Online (Sandbox Code Playgroud)
第一个问题:第二个单击事件(putintoField)似乎不适用于项目列表。它只是什么都不做。但如果我删除 ul 和 li 标签它就可以了。我错过了什么吗?有没有办法用 ul 和 li 标签来做到这一点?
第二个问题:如何将所选城市放入输入字段?我只是缺少如何选择输入的值并替换它。
这看起来很简单,但我在互联网上找不到正确的答案。
谢谢大家的回答!
这是我的过滤器文件,在应用程序模块中声明:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'filter'
})
export class FilterPipe implements PipeTransform {
transform(items: any[], searchText: string): any[] {
if(!items) return [];
if(!searchText) return items;
searchText = searchText.toUpperCase();
return items.filter( it => {
return it.toUpperCase().includes(searchText);
});
}
}
Run Code Online (Sandbox Code Playgroud)
第一个问题
我在您的代码中没有遇到任何问题。也许你可以绑定你的 ul *ngif(你可以替换你的citiesListInput: string[];声明citiesListInput = []。并检查像*ngIf="citiesListInput.length"。注意:我替换了你的数组this.citiesListInput = ['dhaka', 'sylet', 'manikganj'];
而不是this.citiesListInput = this.citiesSvc.citiesList;它的工作正常
第二个问题
只需分配你的模型
putIntoField(city: string) {
this.searchText = city;
console.log(city);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7791 次 |
| 最近记录: |