0
只是一個簡單的問題,如果有人知道如何解決這個問題,但我有一些複選框輸入問題。Angular2 ngModel複選框未定義
它通過以下方式
<input type="checkbox" [(ngModel)]="settings.ht_enabled" (ngModelChange)="changeSetting('ht_enabled')" id="setting-ht_enabled"> <label for="setting-ht_enabled">ht enabled</label>
每次配置我點擊我的模型的值是不確定的複選框,並(ngModelChange)
被觸發只做一個console.log
。 設置得到正確設置,我看到選中的複選框。只有當我實際點擊它時,我的模型的值纔會變得不明確。
另一個需要注意的是,這個Angular2項目是作爲一個web worker運行的。
有沒有人有類似的問題,並知道如何解決這個問題?
這塊HTML背後的組件是
@Component({
selector: 'app-setting-form',
templateUrl: './setting-form.component.html',
styleUrls: ['./setting-form.component.css'],
changeDetection: ChangeDetectionStrategy.OnPush
})
export class SettingFormComponent {
settings: Setting;
constructor(
private service: SettingService,
private cdr: ChangeDetectorRef,
private messageBrokerService: MessageBrokerService,
) {
this.messageBrokerService.send('access_token', '', this.initialize.bind(this));
}
initialize(token) {
this.service.getSettings(token).subscribe(settings => this.handleSettings(settings));
}
handleSettings(settings: any) {
this.settings = new Setting(settings);
this.cdr.markForCheck();
}
changeSetting(setting: string) {
console.log(this.settings);
}
}
你可以發佈一個有點您的JavaScript的? –
你有一個對象「設置」在你的JavaScript? –
你試過初始化'settings'嗎?看來它沒有任何價值。 –