如何将参数传递给 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 不会触发)。

参考:https://github.com/NativeScript/NativeScript/issues/1353

我没试过,但根据 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