【发布时间】:2016-05-13 15:28:23
【问题描述】:
我正在使用 Lookup 组件,并收到一个错误,指出我的数据对象未定义,因此无法使用 .filter()。代码如下:
getAllAccounts() {
this._quickAddService.getAllAccounts()
.subscribe(
accounts => this.getAllAccountsFinished(accounts),
error => this.errorMessage = <any>error);
}
getAllAccountsFinished(accounts:any) {
this.accounts = accounts;
console.log(this.accounts);
this.hideSpinner();
}
ngOnInit(){
this.getAllAccounts();
}
lookup(query: string): Account[] {
if (!query) {
return null;
}
return this.accounts.filter((item) => item.name.toLowerCase().indexOf(query.toLowerCase())>-1);
}
console.log 显示服务完成返回后数据已正确绑定。但是,当在输入时触发查找时 this.accounts 未定义。
【问题讨论】:
-
从哪里调用
lookup? -
是模板中元素绑定的属性:
<ngl-lookup [lookup]="lookup" field="name" (pick)="onPick($event)" debounce="0" placeholder="Hint: type words"> <span nglLookupLabel>Quick search an account</span> </ngl-lookup> -
这就是为什么在 Angular 中创建
@Output() lookup = new EventEmitter()在<ngl-lookup>中并像<ngl-lookup (lookup)="lookup($event)"那样绑定到它比传递函数更好。 -
@GunterZochbauer 是的,没错,但在我们的例子中,我不想让用户处理它;)github.com/ng-lightning/ng-lightning/blob/master/src/lookups/…
-
我明白了。似乎有道理。感谢您的反馈!
标签: angular ng-lightning