按钮点按回调

时间:2016-09-01 22:39:09

标签: nativescript

我的xml文件中有这样的东西

<Button id="info-button" text="Test" tap="{{ onInfoTap }}" />

点击时我想在我的上下文对象中调用一个方法。

我收到编译时警告:

JS:Binding:Property:'onInfoTap'无效或不存在。 SourceProperty:'onInfoTap'

这只是一个单向回调 - 而不是一个属性。如果我删除双花括号,那么我不会回调到我的上下文对象。

帮助!

1 个答案:

答案 0 :(得分:3)

您使用的是MVVM结构吗?如果是这样,您可以在Model页面上定义一个tap按钮,用于调用ViewModel中的函数:

在XML中:

<Button tap="onInfoTap" />

.js档案中:

export function onInfoTap(args) {
    // Just for example, pageViewModel is the page binding context object
    pageViewModel.yourFunction();
}

在ViewModel中:

class PageViewModel extends Observable {
    public yourFunction() {
        // Code here
    }
}

这就是我以前做的事情。如果你不想删除大括号,我建议:

class PageViewModel extends Observable {
    public yourFunction() {
        // Code here
    }
    this.set("onInfoTap", yourFunction);
}

如果这些事情对您没有帮助,请您再发布一些代码,以便我能更清楚地了解它。