如何从本地引用js文件

发布于 7 年前作者 bli5504 次浏览最后编辑 7 年前来自 ask

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

10 回复
zhangping
zhangping1 楼6 年前

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

weizhao
weizhao2 楼6 年前

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

mluo
mluo3 楼6 年前

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

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

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

function liuyanban(user){

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

   user

}

调用时:

util.liuyanban(this.data.user)

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

ncheng
ncheng4 楼6 年前

module.exports = {

//可提供的方法

xxx:zzz

}

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

zouxia
zouxia5 楼6 年前

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

Page({

data: {

        }

})

module.exports = {

//可提供的方法

liuyanban:liuyanban

}

function liuyanban(){

    xxxxxx

    xxxxxx

}

抽取公共部分很重要

czhong
czhong6 楼6 年前

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

liaojun
liaojun7 楼6 年前

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

function liuyanban(page){

    page.setData({

        xxx

    })

}

调用:

util.liuyanban(this)

这是可以实现的,多想想

jie31
jie318 楼6 年前

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

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

真正调用的时候写:

util.liuyanban()

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

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

ylong
ylong9 楼6 年前

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

jing60
jing6010 楼5 年前

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

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

在多个页面的最上面加:

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

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

module.exports = {

//可提供的方法

xxx:zzz

}