离子 innerHTML 更新
Ionic innerHTML update
尝试用 innerHTML
更新位于 component
中的 div,值取决于用户交互。 http
数据正确,但它仅在我单击组件时更新,而不是在 drawerHTML
更新时更新。
编辑:我忘了提到 drawerHTML
是在 Google Maps[=38= 的 cordova 插件中设置的] 标记点击回调。我相信这是罪魁祸首,因为它可能是 运行 在设置值的异步回调中,但似乎并不要求更新元素。
marker.addEventListener(GoogleMapsEvent.MARKER_CLICK).subscribe((data) => {
this._myProvider.getData(marker.getTitle()).subscribe((data) =>{
this.drawerHTML = this._prepare(data);
console.log(this.drawerHTML);
});
});
这是显示的位置:
<content-drawer [options]="drawerOptions">
<ion-toolbar>
<ion-buttons start>
<button ion-button color="light" clear (click)="showDrawer()">
showDrawer
</button>
</ion-buttons>
</ion-toolbar>
<ion-content>
<div [innerHTML]="drawerHTML">
</div>
<button ion-button round small (click)="hideDrawer()">Close</button>
</ion-content>
</content-drawer>
content-drawer
在单独的文件中设置为离子/angular 组件
content-drawer.html
为:
<ion-content>
<ng-content></ng-content>
</ion-content>
上面的代码从我家投射到 ng-content
。
似乎我必须让 content-drawer
手动更新自己,因为数据不会在运行时更新? DOM 树必须更新?
内容抽屉基于 this implementation。
试试 ChangeDetectorRef.
import { ChangeDetectorRef } from "@angular/core";
注入并实例化它
constructor(private changeDetectorRef:ChangeDetectorRef) { }
像这样写你的代码。
marker.addEventListener(GoogleMapsEvent.MARKER_CLICK).subscribe((data) => {
this._myProvider.getData(marker.getTitle()).subscribe((data) =>{
this.drawerHTML = this._prepare(data);
this.changeDetectorRef.detectChanges();
});
});
这可能会解决您的问题。
尝试用 innerHTML
更新位于 component
中的 div,值取决于用户交互。 http
数据正确,但它仅在我单击组件时更新,而不是在 drawerHTML
更新时更新。
编辑:我忘了提到 drawerHTML
是在 Google Maps[=38= 的 cordova 插件中设置的] 标记点击回调。我相信这是罪魁祸首,因为它可能是 运行 在设置值的异步回调中,但似乎并不要求更新元素。
marker.addEventListener(GoogleMapsEvent.MARKER_CLICK).subscribe((data) => {
this._myProvider.getData(marker.getTitle()).subscribe((data) =>{
this.drawerHTML = this._prepare(data);
console.log(this.drawerHTML);
});
});
这是显示的位置:
<content-drawer [options]="drawerOptions">
<ion-toolbar>
<ion-buttons start>
<button ion-button color="light" clear (click)="showDrawer()">
showDrawer
</button>
</ion-buttons>
</ion-toolbar>
<ion-content>
<div [innerHTML]="drawerHTML">
</div>
<button ion-button round small (click)="hideDrawer()">Close</button>
</ion-content>
</content-drawer>
content-drawer
在单独的文件中设置为离子/angular 组件
content-drawer.html
为:
<ion-content>
<ng-content></ng-content>
</ion-content>
上面的代码从我家投射到 ng-content
。
似乎我必须让 content-drawer
手动更新自己,因为数据不会在运行时更新? DOM 树必须更新?
内容抽屉基于 this implementation。
试试 ChangeDetectorRef.
import { ChangeDetectorRef } from "@angular/core";
注入并实例化它
constructor(private changeDetectorRef:ChangeDetectorRef) { }
像这样写你的代码。
marker.addEventListener(GoogleMapsEvent.MARKER_CLICK).subscribe((data) => {
this._myProvider.getData(marker.getTitle()).subscribe((data) =>{
this.drawerHTML = this._prepare(data);
this.changeDetectorRef.detectChanges();
});
});
这可能会解决您的问题。