Нарушена привязка данных после обновления до {N} 2.3.0 и Angular 2.1.2
После обновления моего проекта до Nativescript 2.3.0 и Angular 2.1.2 привязка данных с использованием ngModel больше не работает на моих коммутаторах. Если я связываюсь с [флажками] и (propertyChange), это работает.
Я продублировал эту проблему в новом примере проекта. Это изменение было сделано в Nativescript или Angular или это может быть что-то еще?
Я использовал:
<Switch (ngModelChange)="onChange($event)" [ngModel]="model.switchValue"></Switch>
onChange () больше не срабатывает при переключении Switch.
Это похоже на работу:
<Switch (propertyChange)="onChange($event)" [checked]="model.switchValue"></Switch>
Со времени обновления я также заметил некоторые другие проблемы, но могу решить их в другом вопросе.
2 ответа
Оказывается, это был вариант этого вопроса. Мне нужно было сослаться на NativeScriptFormsModule. Сначала я попробовал FormsModule от Angular, но получил ошибку:
No value accessor for form control with unspecified name attribute
Исправление заключалось в импорте NativeScriptFormsModule в app.module.ts:
import { NativeScriptFormsModule } from 'nativescript-angular/forms';
@NgModule({
imports: [
NativeScriptFormsModule,
...]
...
У вас также есть небольшая синтаксическая ошибка, так как закрывающая кавычка отсутствует для вашего ngModelChange.
Пример работает на моей стороне - вот код, который я протестировал:
page.xml
<Label [text]="thirdSwitchState" textWrap="true"></Label>
<Switch [ngModel]="thirdSwitchValue" (ngModelChange)="onChange($event)"></Switch>
page.ts
public thirdSwitchValue = true;
public thirdSwitchState = "ON";
public onChange(result) {
if (result) {
this.thirdSwitchState = "ON";
}
else {
this.thirdSwitchState = "OFF";
}
}