Нарушена привязка данных после обновления до {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";
    }
}
Другие вопросы по тегам