2016-11-01 1 views
1

プロジェクトをNativescript 2.3.0およびAngular 2.1.2に更新した後、ngModelを使用したデータバインディングはスイッチで機能しなくなりました。私が[checked]と(propertyChange)にバインドすると動作します。{N} 2.3.0およびAngular 2.1.2に更新した後のデータバインディングの崩壊

私はこの問題を新しいサンプルプロジェクトで重複しています。これはNativescriptやAngularに加えられた変更ですか、それとも別のものかもしれませんか?

私が使っていた:

<Switch (ngModelChange)="onChange($event)" [ngModel]="model.switchValue"></Switch> 

のonChangeを()スイッチがトグルされたとき、もはや発射されます。

これは動作するようです:

<Switch (propertyChange)="onChange($event)" [checked]="model.switchValue"></Switch> 

私も更新するので、いくつかの他の問題を気づいたが、別の質問でそれらに対処することができます。

答えて

1

これはthis questionのバリエーションであることが判明しました。私はNativeScriptFormsModuleを参照する必要がありました。最初に私は角のFormsModuleを試してみましたが、エラーが発生しました:

No value accessor for form control with unspecified name attribute 

修正はapp.module.tsでNativeScriptFormsModuleをインポートすることでした:

import { NativeScriptFormsModule } from 'nativescript-angular/forms'; 

@NgModule({ 
    imports: [ 
    NativeScriptFormsModule, 
    ...] 
    ... 
0

あなたは閉じ引用符としても、小さな構文エラーがありますあなたの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"; 
    } 
} 
+1

は感謝。私はこれを修正するための質問を編集しました。私が提供した線は、説明のためのものでした。実際のコードには引用符が付いています。 app.module.ts内のNativeScriptFormsModuleをインポートすることは、私にとってそれを修正したものです。 – Stephen

関連する問題