Tôi muốn có thể sử dụng cú pháp mẫu Angular2 khi xây dựng một Google Maps InfoWindow.Làm cách nào để kết xuất thành phần Angular2 thành chuỗi?
Theo như tôi có thể biết, điều này có nghĩa là chuyển một thành phần dưới dạng chuỗi mẫu đến thuộc tính content
trong đối tượng hàm tạo InfoWindow
.
Nếu đúng như vậy, tôi tin rằng tôi cần phải định cỡ mẫu thành phần. Điều này có đúng không (và có thể)?
Dưới đây là một ví dụ về những gì tôi nghĩ tôi cần phải làm:
// Component
import {Component} from 'angular2/core';
import {Thing} from './something/in/my/app/thing.model.ts';
@Component({
selector: 'my-infowindow',
template: `<p>This is an infowindow for {{ something.name }}</p>`
})
export class MyInfoWindowComponent {
constructor(public something: Thing) {}
}
// Implementation
import {Thing} from './something/in/my/app/thing.model.ts';
import {MyInfoWindowComponent} from './path/to/infowindow.component';
/* { ...stuff... } */
private _buildInfoWindow(thing: Thing): google.maps.InfoWindow {
return new google.maps.InfoWindow({
/* v this is what I want v */
content: new MyInfoWindowComponent(thing).toString()
/*^this is what I want^*/
});
}
Hãy xem 'ElementRef': https : //angular.io/docs/ts/latest/api/core/ElementRef-class.html hoặc 'ViewChild': https://angular.io/docs/ts/latest/api/core/ViewChild-var.html – Langley
Tôi không thể thấy điểm tạo thành phần Góc và sau đó xâu chuỗi nó để chuyển nó sang infowindo w. Tại sao bạn không chỉ cần vượt qua một chuỗi để thay thế. Có phải vì bạn muốn sử dụng ràng buộc dữ liệu? Điều này sẽ không được cập nhật sau khi vượt qua nó để infowindow anyway. –
@ GünterZöchbauer - phải, tôi không cần databinding - sytax mẫu chỉ có vẻ đẹp hơn nhiều so với một buildbuilder khủng khiếp. (đặc biệt là cho 'ngIf' và' ngFor'). Điều đó có ý nghĩa? – drewwyatt