如何将参数传递给 propertyChange?
How to pass an argument into propertyChange?
所以这个标题是不言自明的。
<Switch *ngIf="item.type=='checkbox'" [item]="item" (propertyChange)="onAttributeSwitchChange" row="1" checked="false"></Switch>
public onAttributeSwitchChange(args: observable.PropertyChangeData) {
console.dir(args);
//console.log(args.propertyName + " has been changed and the new value is: " + args.value);
if (args.propertyName === "checked") {
} else {
}
}
我需要将 item
放入 onAttributeSwitchChange
而且,我需要让 onAttributeSwitchChange
工作,因为它不是现在(当我改变值时 console.dir
不会触发)。
我没试过,但根据 nativescript-sdk-examples-ng 它可能看起来像这样:
我的-switch.html
<Switch *ngIf="item.type=='checkbox'" [item]="item" (checkedChange)="onAttributeSwitchChange(item)" row="1" [checked]="switchValue"></Switch>
mySwitchComponent.ts
import {Component} from '@angular/core';
@Component({
selector: "switch-stuff",
templateUrl: "some/path/my-switch.html",
})
export class MySwitchComponent {
switchValue: boolean = false;
constructor() {}
onAttributeSwitchChange(item) {
//do something with item here
}
}
感谢@alexis-cramatte 的提示:)
但这是有效的:
在 (Nativescript) NG2 中,您可以通过 ID 访问属性。
<Switch #switch *ngIf="item.type=='checkbox'" row="1" checked="false" (checkedChange)="onAttributeSwitchChange(switch.checked)"></Switch>
开关 - 设置 ID
然后您可以通过 - switch.[propertyhere] 使用对象的属性 - 例如:switch.checked
所以这个标题是不言自明的。
<Switch *ngIf="item.type=='checkbox'" [item]="item" (propertyChange)="onAttributeSwitchChange" row="1" checked="false"></Switch>
public onAttributeSwitchChange(args: observable.PropertyChangeData) {
console.dir(args);
//console.log(args.propertyName + " has been changed and the new value is: " + args.value);
if (args.propertyName === "checked") {
} else {
}
}
我需要将 item
放入 onAttributeSwitchChange
而且,我需要让 onAttributeSwitchChange
工作,因为它不是现在(当我改变值时 console.dir
不会触发)。
我没试过,但根据 nativescript-sdk-examples-ng 它可能看起来像这样:
我的-switch.html
<Switch *ngIf="item.type=='checkbox'" [item]="item" (checkedChange)="onAttributeSwitchChange(item)" row="1" [checked]="switchValue"></Switch>
mySwitchComponent.ts
import {Component} from '@angular/core';
@Component({
selector: "switch-stuff",
templateUrl: "some/path/my-switch.html",
})
export class MySwitchComponent {
switchValue: boolean = false;
constructor() {}
onAttributeSwitchChange(item) {
//do something with item here
}
}
感谢@alexis-cramatte 的提示:)
但这是有效的:
在 (Nativescript) NG2 中,您可以通过 ID 访问属性。
<Switch #switch *ngIf="item.type=='checkbox'" row="1" checked="false" (checkedChange)="onAttributeSwitchChange(switch.checked)"></Switch>
开关 - 设置 ID
然后您可以通过 - switch.[propertyhere] 使用对象的属性 - 例如:switch.checked