将我的项目更新为Nativescript 2.3.0和Angular 2.1.2后,使用ngModel的数据绑定不再适用于我的Switch。如果我绑定到[checked]和(propertyChange)它就可以工作。
我在一个新的示例项目中重复了这个问题。这是对Nativescript或Angular进行的更改还是其他内容?
我正在使用:
<Switch (ngModelChange)="onChange($event)" [ngModel]="model.switchValue"></Switch>
切换开关时,onChange()不再触发。
这似乎有效:
<Switch (propertyChange)="onChange($event)" [checked]="model.switchValue"></Switch>
我还注意到自更新以来的其他一些问题,但可能会在另一个问题中解决这些问题。
答案 0 :(得分:1)
事实证明,这是this question的变体。我需要引用NativeScriptFormsModule。起初我尝试了Angular的FormsModule,但得到了错误:
No value accessor for form control with unspecified name attribute
修复是在app.module.ts中导入NativeScriptFormsModule:
import { NativeScriptFormsModule } from 'nativescript-angular/forms';
@NgModule({
imports: [
NativeScriptFormsModule,
...]
...
答案 1 :(得分: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";
}
}