setting.component.ts
import { Component, OnInit } from '@angular/core';
import { ElectronService } from 'ngx-electron';
@Component({
selector: 'app-setting',
templateUrl: './setting.component.html',
styleUrls: ['./setting.component.css']
})
export class SettingComponent implements OnInit {
private primaryServer: string;
private secondaryServer: string;
constructor(
private electron: ElectronService
) { }
ngOnInit() {
this.electron.ipcRenderer.send("asynchronous-message", {get: "settings"})
this.electron.ipcRenderer.on("asynchronous-reply", (event, data) => {
this.primaryServer = data.database.primary;
this.secondaryServer = data.database.secondary;
})
}
}
Run Code Online (Sandbox Code Playgroud)
设置.component.html
<p>{{primaryServer}}</p>
<p>{{secondaryServer}}</p>
Run Code Online (Sandbox Code Playgroud)
我的“primaryServer”和“secondaryServer”值在页面加载时不显示。但是,当我单击输入或随机按钮时,它会显示出来。我如何让它们出现在 init 上?
import { Component, OnInit, NgZone } from '@angular/core';
import { ElectronService } from 'ngx-electron';
@Component({
selector: 'app-setting',
templateUrl: './setting.component.html',
styleUrls: ['./setting.component.css']
})
export class SettingComponent implements OnInit {
private primaryServer: string;
private secondaryServer: string;
constructor(
private electron: ElectronService,
private zone: NgZone
) { }
ngOnInit() {
this.electron.ipcRenderer.send("asynchronous-message", {get: "settings"})
this.electron.ipcRenderer.on("asynchronous-reply", (event, data) => {
this.zone.run(()=>{
this.primaryServer = data.database.primary;
this.secondaryServer = data.database.secondary;
})
})
}
}
Run Code Online (Sandbox Code Playgroud)
这是我为使其正确更新所做的更改
您的代码可能在 Angulars 区域之外运行,因此 Angular 无法识别它需要运行更改检测。您可以使用 zone.run(() => { 您在此处更新模型的代码 }) 强制代码返回区域。如果这有效,您可以进一步调查为什么它在 Angulars 区域之外运行。–君特·佐希鲍尔
| 归档时间: |
|
| 查看次数: |
936 次 |
| 最近记录: |