Просто быстрый вопрос, если кто-нибудь знает, как это решить, но у меня есть некоторые проблемы с входным флажком.Angular2 ngModel checkbox undefined
Он настроен следующим образом
<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 работает как веб-рабочий.
У кого-нибудь были подобные проблемы и он знает, как это решить?
компонент за этот кусок 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'? Кажется, что у него нет никакой ценности. –