[小程序开发] 模态对话框模块封装

本文介绍了如何通过`import`和`wx`全局对象两种方式在JavaScript中引入并使用`model`方法,该方法用于显示模态对话框,支持传参和处理用户确认/取消操作。
摘要由CSDN通过智能技术生成

一、使用import方法引入

  •  将要重复调用的方法
// modal方法
// 使用model方法时,可以传入参数,也可以不传入参数,如果需要传入参数,要传入对象作为参数
const model=(options = {}) => {
	// 在方法内部通过Promise返回用户的操作
	// 如果用户点击了确定,需要通过resolve返回true;如果用户点击了取消,需要通过resolve返回false
	return new Promise((resolve)=>{
		const defaultOpt={
			title:'提示',
			content:'您确定执行该操作吗?',
			confirmColor:'#f3514f'
		}
		// 通过Object.assign方法将参数进行合并
		// 使用传入的参数覆盖默认的参数,将合并以后的参数赋值给一个空对象,从而不影响默认的参数
		const opts=Object.assign({},defaultOpt,options)
		wx.showModal({
			// 将合并以后的参数通过展开运算符赋值给wx.showModal对象
		  ...opts,
		  complete({confirm,cancel}){
			  confirm && resolve(true)
			  cancel && resolve(false)
		  }
		})
	})
}
// 如果其他js文件需要使用model方法,需要先导入model,然后进行调用即可。
export{model}
  • 在app.js页面使用import方法引入
import {model} from "./utils/extendApi"
App({
    async onShow(){

	// 引入model不传递参数
	await model()
	// 引入model传递参数
	await model({title:'新的提示',showCancel:false})

    }  
})

 二、使用wx全局对象引入

  •  将要重复调用的方法 
const model=(options = {}) => {
	// 在方法内部通过Promise返回用户的操作
	// 如果用户点击了确定,需要通过resolve返回true;如果用户点击了取消,需要通过resolve返回false
	return new Promise((resolve)=>{
		const defaultOpt={
			title:'提示',
			content:'您确定执行该操作吗?',
			confirmColor:'#f3514f'
		}
		// 通过Object.assign方法将参数进行合并
		// 使用传入的参数覆盖默认的参数,将合并以后的参数赋值给一个空对象,从而不影响默认的参数
		const opts=Object.assign({},defaultOpt,options)
		wx.showModal({
			// 将合并以后的参数通过展开运算符赋值给wx.showModal对象
		  ...opts,
		  complete({confirm,cancel}){
			  confirm && resolve(true)
			  cancel && resolve(false)
		  }
		})
	})
}

// 将 model方法挂载到wx全局对象身上,避免每次使用都要进行导入。
// 如果想挂载到wx全局对象上这种写法生效,需要让当前文件执行一次。
wx.model=model
  • 在app.js页面使用wx全局对象引入 
import {toast} from "./utils/extendApi"
App({
    onShow(){
	
	// 使用全局方法不传入参数
	// 通过Promise返回的参数,需要加await,onShow前加async
	const res = await wx.model()
	console.log(res)

    // 使用全局方法传入参数
	const res = await wx.model({
		title:'新的提示',
		showCancel:false
	})
	console.log(res)
	}

})

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值