我的xml文件中有这样的东西
<Button id="info-button" text="Test" tap="{{ onInfoTap }}" />
点击时我想在我的上下文对象中调用一个方法。
我收到编译时警告:
JS:Binding:Property:'onInfoTap'无效或不存在。 SourceProperty:'onInfoTap'
这只是一个单向回调 - 而不是一个属性。如果我删除双花括号,那么我不会回调到我的上下文对象。
帮助!
答案 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);
}
如果这些事情对您没有帮助,请您再发布一些代码,以便我能更清楚地了解它。