【发布时间】:2017-10-10 04:16:54
【问题描述】:
我正在尝试编写一个 google place 指令,因为所有完成的指令似乎都不能很好地工作,或者代码库非常可怕。
所以这是我的尝试,它是干净的,但是当用户键入内容时它没有激活:
@Directive({
selector: '[googlePlace]'
})
export class GoogleplaceDirective implements OnInit {
@Output() placeChange: EventEmitter<any> = new EventEmitter<any>();
public autocomplete: any;
constructor(private elementRef: ElementRef) {}
ngOnInit() {
this.autocomplete = new google.maps.places.Autocomplete(this.elementRef.nativeElement, {});
google.maps.event.addListener(this.autocomplete, 'place_changed', () => {
const place = this.autocomplete.getPlace();
this.placeChange.emit(place);
});
}
}
然后我像这样使用它:
<input formControlName="address" googlePlace (placeChange)="setAddress($event)">
但是当我输入输入时,自动完成没有触发,我可能遗漏了一些简单的东西,但我不知道那可能是什么。也许我必须以某种方式手动收听输入然后触发搜索?
【问题讨论】:
标签: angular typescript google-places-api angular2-directives