小程序里怎么给index页面的view绑定一个点击事件,执行app.js里的方法呢?

我给一些子页面的button标签绑定一个相同的点击事件比如getFormID,所以把getFormID放在了app.js里。子页面的button绑定点击事件的时候直接bindtap="getFormID"执行不了,提示page里没有getFormID方法,怎么才能绑定到app.js里的getFormID呢?

阅读 4.6k
5 个回答

getFormID 为什么要绑定到app.js里面呢?事件相同太多吗?我觉得可以放入一个封装一下,放入其他js文件里面

小程序没有原生的 mixin 功能,但并不意味着我们不能自己实现。考虑到 Page(init) 的页面初始化方式,可以这么做:

import {defaults} from 'lodash';
import mixins from './mixins'; // 要混入的内容

const page = defaults({
  // 这个页面专属的内容
}, utils);
Page(page);

再index.js里写一个方法getFormIDgetFormID方法调app.js里的方法就可以了

因为声明周期和this的是上下文范围只能在Page里面。还有app.js里面不宜放太多内容。

index.js页面顶部需要 const app = getApp() 然后你引用app.js里的方法就可以写app.getFormId()了。没有楼上那些说的那么复杂。当然,不建议你把 公用的 函数放在app.js里。utils文件夹里面你自定义个.js文件 然后在需要用的页面引入就行了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题