【发布时间】:2018-06-24 22:54:21
【问题描述】:
这是我的打字稿
export class State {
constructor(public name: string, public population: string, public flag: string) { }
}
export class AutocompleteOverviewComponent implements OnInit {
stateCtrl: FormControl;
filteredStates: Observable<any[]>;
temp:string;
states: State[] = [
{
name: 'Arkansas',
population: '2.978M',
// https://commons.wikimedia.org/wiki/File:Flag_of_Arkansas.svg
flag: 'https://upload.wikimedia.org/wikipedia/commons/9/9d/Flag_of_Arkansas.svg'
},
{
name: 'California',
population: '39.14M',
// https://commons.wikimedia.org/wiki/File:Flag_of_California.svg
flag: 'https://upload.wikimedia.org/wikipedia/commons/0/01/Flag_of_California.svg'
},
{
name: 'Florida',
population: '20.27M',
// https://commons.wikimedia.org/wiki/File:Flag_of_Florida.svg
flag: 'https://upload.wikimedia.org/wikipedia/commons/f/f7/Flag_of_Florida.svg'
},
{
name: 'Texas',
population: '27.47M',
// https://commons.wikimedia.org/wiki/File:Flag_of_Texas.svg
flag: 'https://upload.wikimedia.org/wikipedia/commons/f/f7/Flag_of_Texas.svg'
}
];
constructor() {
this.stateCtrl = new FormControl();
}
ngOnInit() {
this.filteredStates = this.stateCtrl.valueChanges
.pipe(
startWith(''),
map(state => state ? this.filterStates(state) : this.states.slice(),
)
);
}
filterStates(name1:string) {
return this.states.filter(state =>
state.name.toLowerCase().indexOf(name1.toLowerCase()) === 0);
}
我收到错误,例如 ** '{}' 类型的参数不可分配给 'string' 类型的参数。** 在 ngOnInit 函数上我正在调用 this.filterStates(state) 函数,但我收到错误请帮助他
【问题讨论】:
-
删除对
startWith的调用。 -
删除 startwith 后仍然无法正常工作。
-
嗯,这取决于你想要完成什么,但你的
startWith将导致Observable<string | State> -
这是一个角材料自动完成的例子,所以我想知道我哪里出错了。
标签: angular typescript angular-material