如何从本地引用js文件
发布于 6 年前 作者 bli 5303 次浏览 来自 问答

很多个页面都有相同的一个留言板,就想所有的页面用一个留言板,可是引用时候js不知道怎么引用了。

10 回复

主要是data里边有数据,需要方法调用。不能写在page外啊

你说的方法这里有,不过不起作用啊。http://www.cnblogs.com/huangenai/p/6385342.html

这些data是私有数据,不是公共部分,不抽取

在定义这个liuyanban方法的时候,私有数据作为参数就可以了

比如你的不同页面提供的data都不同,那调用的时候,就要传当前页面私有的data

function liuyanban(user){

    //你要的私有数据,拿出来用

   user

}

调用时:

util.liuyanban(this.data.user)

我只是写个大概思想,具体你要自己抽取实现

module.exports = {

//可提供的方法

xxx:zzz

}

这个写在page里边报错,写在外边page里的方法都不能调用。

在page之外,最好单独写一个js文件了,我没试过调用page里的方法,都是单独写在一个外部js文件的

Page({

data: {

        }

})

module.exports = {

//可提供的方法

liuyanban:liuyanban

}

function liuyanban(){

    xxxxxx

    xxxxxx

}

抽取公共部分很重要

必须是在util.js里边才可以吗? module.exports输出后,引用页面只需要var util = require(’…/…/utils/util.js’)这一句话就够了吗?

你具体的业务逻辑我也不清楚,你可以先写其中两个页面的留言板,看看都有什么公共部分和私有部分,再构思怎么抽取,传参这个事,你可以传很多个参数,或者干脆传page本身都行,在定义对外提供方法的时候,传进来的page就相当于你在page里用的this了,你要什么数据都行

function liuyanban(page){

    page.setData({

        xxx

    })

}

调用:

util.liuyanban(this)

这是可以实现的,多想想

就是说你要把留言板抽取出来,封装成一个方法向外提供,名字你可以自己定的,不一定是util.js

需要调用的页面(是js文件),最上面写var util = require(’…/…/utils/util.js’)

真正调用的时候写:

util.liuyanban()

liuyanban这个方法就是你要抽取出来向外提供的

这个方法具体是怎么样的,传不传参数,传什么参数,就看你怎么抽取了

我这wxml。wxss 都是引用的,这样引用js用不了,数据读取不了

是不是就像引用工具类一样?

其实你抽取出相同部分应该也可以

在多个页面的最上面加:

var util = require(’…/…/utils/util.js’)

然后util.js里必须有模块的出口:

module.exports = {

//可提供的方法

xxx:zzz

}

回到顶部