data: { showMenu: true , statusBarHeight: app.globalData.statusBarHeight, title: "更多" , menus: [ { title: "转发" , icon: "" , click: , }, ], }, /** * 组件的方法列表 */ methods: { showMenu(): void { this .setData({ showMenu: true , }); }, hideMenu(): void { this .setData({ showMenu: false , }); }, }, |
我想在 data - menus - click 属性中直接调用 methods 里的方法 现在来看貌似行不通?
为啥这么怪的需求。。直接调用不行,不过可以反过来
data: {
click: function(){
console.log(1)
}
},
methods: {
clickFn(){
this.data.click()
}
}
data: {
menu: [{
funcName:
"aFn"
},{
funcName:
"bFn"
}]
},
methods: {
clickFn(e){
this
[e.currentTarget.dataset.name]()
},
aFn() {
console.log(
"a"
)
},
bFn() {
console.log(
"b"
)
}
}
<text bindtap=
"clickFn"
wx:
for
=
"{{menu}}"
data-name=
"{{item.funcName}}"
>components/test.wxml</text>
大概这么个意思
是的 有个比较神奇的操作是直接在 ready 的生命周期里赋值 click 的值写成字符串 名字要跟 methods 里的方法一样
但是感觉这样还是不够优雅哈哈哈。。。