GithubHelp home page GithubHelp logo

wux-weapp / wx-extend Goto Github PK

View Code? Open in Web Editor NEW
1.1K 44.0 749.0 52 KB

:dog: 微信小程序 - 扩展插件(发送请求、Promise API、表单验证、Restful API)

License: MIT License

JavaScript 100.00%
wxapp wx-component wx-promise-request wx-validate

wx-extend's Introduction

wx-extend's People

Contributors

skyvow avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wx-extend's Issues

请求

在引入这个库后,如何进行请求的取消呢,不会再发起request请求

多个表单元素的验证问题

比如
input是动态生成的,
Ep:

必填:<input name="info[0]">
必填:<input name="info[1]">
必填:<input name="info[2]">

我看这个校验是通过name来写的rule和message ,但是对于上面的这个情况,该怎么操作呢?

全部api进行promise封装

个人觉得,您可以把所有的方法都进行promse封装,然后里面的api统一使用wxService.api来调用

一点建议

export default (new WxValidate(
  { // 验证字段规则
    content: { required: true, minlength: 5 },
    images: { images: true, },
    videos: { videos: true, }
  },
  { // 验证字段提示信息
    content: { required: "请输入", minlength: "请最少填写5个字" }
  }))
  .addMethod('images', (value, _, data) => value.length || data.videos.length)
  .addMethod("videos", (value, _, data) => value.length || data.images.length)

1、addMethod 方法应该返回this
2、addMethod 方法应该有第三个参数 data(images和videos 两个字段只要有一个为真就整个验证器会返回真)

单独引入wxvalidate.js 报错

VM5199:1 thirdScriptError
sdk uncaught third Error
Unexpected token export
SyntaxError: Unexpected token export 因为我将es6转es5 关闭了

关于validate时值2遍有空格的问题

您好,目前项目中使用到您的验证模块很好用感谢您的分享
现在有个建议就是,关于 wxValidate.checkForm 时是否可以将参数改成需要验证的value对象而不是整个form事件对象,这样对value可以做到部分格式化然后再验证 ^_^

我想在我的库中引入你的 wx-validate 组件

你好,我是 wxPromise 的作者,我看了咱俩的库实现的东西上基本没有什么冲突的。

我一直想设计一个像 element-ui 那样的表单验证功能,用户只用配置 rule 即可,看了你这个我觉得是我想要的。

我想邀请你,在我的库中作为一个API引入。如果不方便,我也可以自己研究下你的源码

隐藏元素

当遇到radio是需要隐藏dom 元素 表单还会进行隐藏dom 元素的验证

表单验证文档中的代码参数不对

下面这个表单验证的文档中有错误
https://github.com/skyvow/wx-extend/blob/master/docs/components/validate.md

下面这段代码有两个问题:
1、这行注释 // 调用验证方法,传入参数 e 是 form 表单组件中的数据 ,描述的内容违背了惯例,容易让人误解,常规情况下 submitForm(e) 中的 e 是form的提交事件;
2、代码中的 WxValidate.checkForm(e) 的 参数 e 不对,应该是 e.detail.value

// 调用验证方法,传入参数 e 是 form 表单组件中的数据
submitForm(e) {
    const params = e.detail.value

    console.log(params)

    // 传入表单数据,调用验证方法
    if (!this.WxValidate.checkForm(e)) {
        const error = this.WxValidate.errorList[0]
        return false
    }
},


required判断object有误

建议在required总添加对object的判断:

            required(value, param) {
                if (!that.depend(param)) {
                    return 'dependency-mismatch'
                } else if (typeof value === 'number') {
                    value = value.toString()
                } else if (typeof value === 'boolean') {
                    return !0
                } else if (Object.prototype.toString.call(value) === "[object Object]") {
                    return Object.keys(value).length;
                }

                return value.length > 0
            },

getStorage失败的时候,不会进入fail回调

  //检查是否已有用户信息
   checkUserInfo() {
       const { prowx } = app;
       // 全局 storage
       prowx.getStorage({
           key: 'userInfo'
       }).then(res => {
           res 
           debugger
       }).catch(res => {
           res
           debugger
       })

       wx.getStorage({
           key: 'userInfo',
           success: function (res) {
               debugger
               console.log(res.data)
           },
           fail: function (res) {
               debugger
               console.log(res.data)
           },
       })
   },

如上代码所示,原生的可以进入fail回调,wx-extend 没有进入,
请问up主,这是什么原因?

如何在WxHttpService中添加自己的实现?

比如:
` this.interceptors.use({
request(request) {

          request.header = request.header || {};
          request.header['content-type'] = 'application/json';
          if (request.url.indexOf('/yse') > -1 && request.url.indexOf('/create_user') < 0) {
             var vsk = wx.getStorageSync('sk');
             if (!sk) {
               async function fn1() {
                 var promise = new Promise(function (resolve, reject) {
                   wx.login({
                     success: function (res) {
                       resolve(res.code);
                     }
                   });
                 });
                 var code = await promise;
                // 我始终无法设置code到header,这是一个异步的,怎么同步设置呢,求解,谢谢!
                 request.header['code'] = code;
               }
               
             } else {
               request.header['sk'] = sk;
             }
           }
           wx.showLoading({
             title: '加载中...',
           })
          return request;`

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.