【发布时间】:2020-03-20 00:43:50
【问题描述】:
在我的 NativeScript (JS/Core) 应用程序中,我有一个自定义组件,里面有一个按钮:
mycomp.xml
<!-- mycomp.xml -->
<StackLayout loaded="onLoaded">
<Button text="{{ label }}" tap="onTap" />
...
</StackLayout>
mycomp.js
/* mycomp.js */
function onLoaded(args) {
const obj = args.object;
obj.bindingContext = {
label: obj.label
};
}
function onTap(args) {
console.log('comp button tap'); // fired
}
page.xml
<!-- page.xml -->
<Page xmlns:mycomp="components/mycomp" xmlns="http://schemas.nativescript.org/tns.xsd">
...
<mycomp:mycomp label="Test" tap="onButtonTap" />
...
</Page>
page.js
/* page.js */
exports.onButtonTap = function(args) {
console.log('Button Tap'); // not fired
}
如何将组件内的点击事件传递给页面事件“onButtonTap”?
【问题讨论】:
-
自定义组件有自己的视图模型还是继承父级?如果它继承了父级,则无需专门传递任何内容,只需在父页面的视图模型中定义回调函数并将其绑定到组件中的点击事件即可。
-
非常感谢 Manoj 和 Nick lliev。这对我帮助很大。
标签: javascript events data-binding components nativescript