如何将参数传递给propertyChange?

时间:2016-09-15 14:47:19

标签: typescript nativescript

因此标题非常自我解释。

<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

2 个答案:

答案 0 :(得分:3)

我没有尝试,但根据nativescript-sdk-examples-ng它应该看起来像这样:

MY-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
    }
}

答案 1 :(得分:0)

谢谢@ alexis-cramatte提示:)

但这是有效的:

在(Nativescript)NG2中,您可以通过ID访问属性。 finally

switch - 设置ID

然后你可以通过 - switch。[propertyhere]使用对象的属性 - 例如:switch.checked