在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答
失心人 回答

flock的是建議鎖,因此不適合題主的需求

雨蝶 回答

ruby 用得不多,我猜測是你 Gemfile 有問題,如果 Gemfile 聲明的 gem 指向一個(gè) github(或者別的什么情況),那么這個(gè) gem 就應(yīng)該包含 gemspec,而你的報(bào)錯(cuò)也說了這個(gè)問題,minimal-mistakes-jekyll.gemspec不存在,你解決下這個(gè)不存在的問題

逗婦乳 回答
  1. 將需要/可能需要權(quán)限控制的路由存入數(shù)據(jù)庫路由表中(路由需要指定name)
  2. 為用戶/角色分配路由權(quán)限
  3. 添加路由權(quán)限驗(yàn)證中間件
    a. 檢查路由是否存在于路由表中
    b. 存在則獲取當(dāng)前登錄用戶/角色是否有該路由權(quán)限(有則$next,無則響應(yīng)無權(quán)限提示)
    c. 不存在直接$next($req)

當(dāng)需要添加文章編輯權(quán)限時(shí):

  1. 插入數(shù)據(jù)到路由表(post.edit)
  2. 為用戶分配路由post.edit

https://github.com/Sydney710/...

短嘆 回答

源代碼 Parser/Tokenizer.c 進(jìn)行詞法分析。首先是依照編碼進(jìn)行解碼。然后通過tok_get 函數(shù)進(jìn)行詞法分析。

首先處理縮進(jìn);
然后是消除空白字符、注釋以及空白行;
再然后是標(biāo)識符、數(shù)字、字符串;
再然后是續(xù)行符('\'+直接輸入換行);
最后是操作符。

static int
tok_get(struct tok_state *tok, char **p_start, char **p_end)
{
    int c;
    int blankline, nonascii;

    *p_start = *p_end = NULL;
  nextline:
    tok->start = NULL;
    blankline = 0;

    /* Get indentation level */
    if (tok->atbol) {
        int col = 0;
        int altcol = 0;
        tok->atbol = 0;
        for (;;) {
            c = tok_nextc(tok);
            if (c == ' ') {
                col++, altcol++;
            }
            else if (c == '\t') {
                col = (col/tok->tabsize + 1) * tok->tabsize;
                altcol = (altcol/tok->alttabsize + 1)
                    * tok->alttabsize;
            }
            else if (c == '\014')  {/* Control-L (formfeed) */
                col = altcol = 0; /* For Emacs users */
            }
            else {
                break;
            }
        }
        tok_backup(tok, c);
        if (c == '#' || c == '\n') {
            /* Lines with only whitespace and/or comments
               shouldn't affect the indentation and are
               not passed to the parser as NEWLINE tokens,
               except *totally* empty lines in interactive
               mode, which signal the end of a command group. */
            if (col == 0 && c == '\n' && tok->prompt != NULL) {
                blankline = 0; /* Let it through */
            }
            else {
                blankline = 1; /* Ignore completely */
            }
            /* We can't jump back right here since we still
               may need to skip to the end of a comment */
        }
        if (!blankline && tok->level == 0) {
            if (col == tok->indstack[tok->indent]) {
                /* No change */
                if (altcol != tok->altindstack[tok->indent]) {
                    if (indenterror(tok)) {
                        return ERRORTOKEN;
                    }
                }
            }
            else if (col > tok->indstack[tok->indent]) {
                /* Indent -- always one */
                if (tok->indent+1 >= MAXINDENT) {
                    tok->done = E_TOODEEP;
                    tok->cur = tok->inp;
                    return ERRORTOKEN;
                }
                if (altcol <= tok->altindstack[tok->indent]) {
                    if (indenterror(tok)) {
                        return ERRORTOKEN;
                    }
                }
                tok->pendin++;
                tok->indstack[++tok->indent] = col;
                tok->altindstack[tok->indent] = altcol;
            }
            else /* col < tok->indstack[tok->indent] */ {
                /* Dedent -- any number, must be consistent */
                while (tok->indent > 0 &&
                    col < tok->indstack[tok->indent]) {
                    tok->pendin--;
                    tok->indent--;
                }
                if (col != tok->indstack[tok->indent]) {
                    tok->done = E_DEDENT;
                    tok->cur = tok->inp;
                    return ERRORTOKEN;
                }
                if (altcol != tok->altindstack[tok->indent]) {
                    if (indenterror(tok)) {
                        return ERRORTOKEN;
                    }
                }
            }
        }
    }

    tok->start = tok->cur;

    /* Return pending indents/dedents */
    if (tok->pendin != 0) {
        if (tok->pendin < 0) {
            tok->pendin++;
            return DEDENT;
        }
        else {
            tok->pendin--;
            return INDENT;
        }
    }

    if (tok->async_def
        && !blankline
        && tok->level == 0
        /* There was a NEWLINE after ASYNC DEF,
           so we're past the signature. */
        && tok->async_def_nl
        /* Current indentation level is less than where
           the async function was defined */
        && tok->async_def_indent >= tok->indent)
    {
        tok->async_def = 0;
        tok->async_def_indent = 0;
        tok->async_def_nl = 0;
    }

 again:
    tok->start = NULL;
    /* Skip spaces */
    do {
        c = tok_nextc(tok);
    } while (c == ' ' || c == '\t' || c == '\014');

    /* Set start of current token */
    tok->start = tok->cur - 1;

    /* Skip comment */
    if (c == '#') {
        while (c != EOF && c != '\n') {
            c = tok_nextc(tok);
        }
    }

    /* Check for EOF and errors now */
    if (c == EOF) {
        return tok->done == E_EOF ? ENDMARKER : ERRORTOKEN;
    }

    /* Identifier (most frequent token!) */
    nonascii = 0;
    if (is_potential_identifier_start(c)) {
        /* Process the various legal combinations of b"", r"", u"", and f"". */
        int saw_b = 0, saw_r = 0, saw_u = 0, saw_f = 0;
        while (1) {
            if (!(saw_b || saw_u || saw_f) && (c == 'b' || c == 'B'))
                saw_b = 1;
            /* Since this is a backwards compatibility support literal we don't
               want to support it in arbitrary order like byte literals. */
            else if (!(saw_b || saw_u || saw_r || saw_f)
                     && (c == 'u'|| c == 'U')) {
                saw_u = 1;
            }
            /* ur"" and ru"" are not supported */
            else if (!(saw_r || saw_u) && (c == 'r' || c == 'R')) {
                saw_r = 1;
            }
            else if (!(saw_f || saw_b || saw_u) && (c == 'f' || c == 'F')) {
                saw_f = 1;
            }
            else {
                break;
            }
            c = tok_nextc(tok);
            if (c == '"' || c == '\'') {
                goto letter_quote;
            }
        }
        while (is_potential_identifier_char(c)) {
            if (c >= 128) {
                nonascii = 1;
            }
            c = tok_nextc(tok);
        }
        tok_backup(tok, c);
        if (nonascii && !verify_identifier(tok)) {
            return ERRORTOKEN;
        }
        *p_start = tok->start;
        *p_end = tok->cur;

        /* async/await parsing block. */
        if (tok->cur - tok->start == 5) {
            /* Current token length is 5. */
            if (tok->async_def) {
                /* We're inside an 'async def' function. */
                if (memcmp(tok->start, "async", 5) == 0) {
                    return ASYNC;
                }
                if (memcmp(tok->start, "await", 5) == 0) {
                    return AWAIT;
                }
            }
            else if (memcmp(tok->start, "async", 5) == 0) {
                /* The current token is 'async'.
                   Look ahead one token.*/

                struct tok_state ahead_tok;
                char *ahead_tok_start = NULL, *ahead_tok_end = NULL;
                int ahead_tok_kind;

                memcpy(&ahead_tok, tok, sizeof(ahead_tok));
                ahead_tok_kind = tok_get(&ahead_tok, &ahead_tok_start,
                                         &ahead_tok_end);

                if (ahead_tok_kind == NAME
                    && ahead_tok.cur - ahead_tok.start == 3
                    && memcmp(ahead_tok.start, "def", 3) == 0)
                {
                    /* The next token is going to be 'def', so instead of
                       returning 'async' NAME token, we return ASYNC. */
                    tok->async_def_indent = tok->indent;
                    tok->async_def = 1;
                    return ASYNC;
                }
            }
        }

        return NAME;
    }

    /* Newline */
    if (c == '\n') {
        tok->atbol = 1;
        if (blankline || tok->level > 0) {
            goto nextline;
        }
        *p_start = tok->start;
        *p_end = tok->cur - 1; /* Leave '\n' out of the string */
        tok->cont_line = 0;
        if (tok->async_def) {
            /* We're somewhere inside an 'async def' function, and
               we've encountered a NEWLINE after its signature. */
            tok->async_def_nl = 1;
        }
        return NEWLINE;
    }

    /* Period or number starting with period? */
    if (c == '.') {
        c = tok_nextc(tok);
        if (isdigit(c)) {
            goto fraction;
        } else if (c == '.') {
            c = tok_nextc(tok);
            if (c == '.') {
                *p_start = tok->start;
                *p_end = tok->cur;
                return ELLIPSIS;
            }
            else {
                tok_backup(tok, c);
            }
            tok_backup(tok, '.');
        }
        else {
            tok_backup(tok, c);
        }
        *p_start = tok->start;
        *p_end = tok->cur;
        return DOT;
    }

    /* Number */
    if (isdigit(c)) {
        if (c == '0') {
            /* Hex, octal or binary -- maybe. */
            c = tok_nextc(tok);
            if (c == 'x' || c == 'X') {
                /* Hex */
                c = tok_nextc(tok);
                do {
                    if (c == '_') {
                        c = tok_nextc(tok);
                    }
                    if (!isxdigit(c)) {
                        tok->done = E_TOKEN;
                        tok_backup(tok, c);
                        return ERRORTOKEN;
                    }
                    do {
                        c = tok_nextc(tok);
                    } while (isxdigit(c));
                } while (c == '_');
            }
            else if (c == 'o' || c == 'O') {
                /* Octal */
                c = tok_nextc(tok);
                do {
                    if (c == '_') {
                        c = tok_nextc(tok);
                    }
                    if (c < '0' || c >= '8') {
                        tok->done = E_TOKEN;
                        tok_backup(tok, c);
                        return ERRORTOKEN;
                    }
                    do {
                        c = tok_nextc(tok);
                    } while ('0' <= c && c < '8');
                } while (c == '_');
            }
            else if (c == 'b' || c == 'B') {
                /* Binary */
                c = tok_nextc(tok);
                do {
                    if (c == '_') {
                        c = tok_nextc(tok);
                    }
                    if (c != '0' && c != '1') {
                        tok->done = E_TOKEN;
                        tok_backup(tok, c);
                        return ERRORTOKEN;
                    }
                    do {
                        c = tok_nextc(tok);
                    } while (c == '0' || c == '1');
                } while (c == '_');
            }
            else {
                int nonzero = 0;
                /* maybe old-style octal; c is first char of it */
                /* in any case, allow '0' as a literal */
                while (1) {
                    if (c == '_') {
                        c = tok_nextc(tok);
                        if (!isdigit(c)) {
                            tok->done = E_TOKEN;
                            tok_backup(tok, c);
                            return ERRORTOKEN;
                        }
                    }
                    if (c != '0') {
                        break;
                    }
                    c = tok_nextc(tok);
                }
                if (isdigit(c)) {
                    nonzero = 1;
                    c = tok_decimal_tail(tok);
                    if (c == 0) {
                        return ERRORTOKEN;
                    }
                }
                if (c == '.') {
                    c = tok_nextc(tok);
                    goto fraction;
                }
                else if (c == 'e' || c == 'E') {
                    goto exponent;
                }
                else if (c == 'j' || c == 'J') {
                    goto imaginary;
                }
                else if (nonzero) {
                    /* Old-style octal: now disallowed. */
                    tok->done = E_TOKEN;
                    tok_backup(tok, c);
                    return ERRORTOKEN;
                }
            }
        }
        else {
            /* Decimal */
            c = tok_decimal_tail(tok);
            if (c == 0) {
                return ERRORTOKEN;
            }
            {
                /* Accept floating point numbers. */
                if (c == '.') {
                    c = tok_nextc(tok);
        fraction:
                    /* Fraction */
                    if (isdigit(c)) {
                        c = tok_decimal_tail(tok);
                        if (c == 0) {
                            return ERRORTOKEN;
                        }
                    }
                }
                if (c == 'e' || c == 'E') {
                    int e;
                  exponent:
                    e = c;
                    /* Exponent part */
                    c = tok_nextc(tok);
                    if (c == '+' || c == '-') {
                        c = tok_nextc(tok);
                        if (!isdigit(c)) {
                            tok->done = E_TOKEN;
                            tok_backup(tok, c);
                            return ERRORTOKEN;
                        }
                    } else if (!isdigit(c)) {
                        tok_backup(tok, c);
                        tok_backup(tok, e);
                        *p_start = tok->start;
                        *p_end = tok->cur;
                        return NUMBER;
                    }
                    c = tok_decimal_tail(tok);
                    if (c == 0) {
                        return ERRORTOKEN;
                    }
                }
                if (c == 'j' || c == 'J') {
                    /* Imaginary part */
        imaginary:
                    c = tok_nextc(tok);
                }
            }
        }
        tok_backup(tok, c);
        *p_start = tok->start;
        *p_end = tok->cur;
        return NUMBER;
    }

  letter_quote:
    /* String */
    if (c == '\'' || c == '"') {
        int quote = c;
        int quote_size = 1;             /* 1 or 3 */
        int end_quote_size = 0;

        /* Find the quote size and start of string */
        c = tok_nextc(tok);
        if (c == quote) {
            c = tok_nextc(tok);
            if (c == quote) {
                quote_size = 3;
            }
            else {
                end_quote_size = 1;     /* empty string found */
            }
        }
        if (c != quote) {
            tok_backup(tok, c);
        }

        /* Get rest of string */
        while (end_quote_size != quote_size) {
            c = tok_nextc(tok);
            if (c == EOF) {
                if (quote_size == 3) {
                    tok->done = E_EOFS;
                }
                else {
                    tok->done = E_EOLS;
                }
                tok->cur = tok->inp;
                return ERRORTOKEN;
            }
            if (quote_size == 1 && c == '\n') {
                tok->done = E_EOLS;
                tok->cur = tok->inp;
                return ERRORTOKEN;
            }
            if (c == quote) {
                end_quote_size += 1;
            }
            else {
                end_quote_size = 0;
                if (c == '\\') {
                    tok_nextc(tok);  /* skip escaped char */
                }
            }
        }

        *p_start = tok->start;
        *p_end = tok->cur;
        return STRING;
    }

    /* Line continuation */
    if (c == '\\') {
        c = tok_nextc(tok);
        if (c != '\n') {
            tok->done = E_LINECONT;
            tok->cur = tok->inp;
            return ERRORTOKEN;
        }
        tok->cont_line = 1;
        goto again; /* Read next line */
    }

    /* Check for two-character token */
    {
        int c2 = tok_nextc(tok);
        int token = PyToken_TwoChars(c, c2);
        if (token != OP) {
            int c3 = tok_nextc(tok);
            int token3 = PyToken_ThreeChars(c, c2, c3);
            if (token3 != OP) {
                token = token3;
            }
            else {
                tok_backup(tok, c3);
            }
            *p_start = tok->start;
            *p_end = tok->cur;
            return token;
        }
        tok_backup(tok, c2);
    }

    /* Keep track of parentheses nesting level */
    switch (c) {
    case '(':
    case '[':
    case '{':
        tok->level++;
        break;
    case ')':
    case ']':
    case '}':
        tok->level--;
        break;
    }

    /* Punctuation character */
    *p_start = tok->start;
    *p_end = tok->cur;
    return PyToken_OneChar(c);
}
拮據(jù) 回答
  • UserController 的 beforeAction
    public function beforeAction($action)
    {/*{{{*/
        if (parent::beforeAction($action)) {

            //... UserController 的 beforeAction 需要做的。

            return true;
        }
        return false;
    }/*}}}*/
  • BaseController 的 beforeAction
    public function beforeAction($action)
    {/*{{{*/
        if (parent::beforeAction($action)) {

            //... BaseController 的 beforeAction 需要做的。

            return true;
        }
        return false;
    }/*}}}*/
祈歡 回答

打斷點(diǎn)

F12開發(fā)者工具-sources
可以設(shè)置停止的點(diǎn)
執(zhí)行到你設(shè)置的停止點(diǎn),就中斷了。

將點(diǎn)設(shè)置到彈窗關(guān)閉前那句

具體設(shè)置方法,是在想要設(shè)置的那一行行數(shù)上點(diǎn)擊一下

網(wǎng)妓 回答

把this保存起來,先驗(yàn)證第一個(gè),在第一個(gè)驗(yàn)證通過得里面,驗(yàn)證第二個(gè),可以試一下可不可以

鐧簞噯 回答

你可能忘記了mybatis的xml文件可以寫ResultMap這個(gè)東西

多表查詢之后 結(jié)果映射到ResultMap里

薄荷綠 回答

idea的話,最好是結(jié)合maven一起使用,基于maven構(gòu)建項(xiàng)目,當(dāng)你在項(xiàng)目里使用ssh框架時(shí),idea會自動的檢測到并且提示里添加相關(guān)的框架支持。。。

舊螢火 回答

2.7.0 開始可以這樣寫:

import { Button } from 'iview'
故林 回答

:height="tableHeight"

mounted(){

    this.tableHeight=700;
    }
    

這種方式是對的呀 運(yùn)行出來就是700

入她眼 回答

vue-touch 組件默認(rèn)的要給組件添加一個(gè)css屬性touch-action: none; 這個(gè)屬性禁止了用戶的所有手勢操作。你用了 左右的滑動事件。。 只要給 這個(gè)組件加一個(gè)css屬性 touch-action: pan-y!important; 就可以使用上下滾動了

愚念 回答

給綁定事件的元素上加上手勢樣式 cursor: pointer

孤島 回答

再給后臺上傳圖片路徑,可是獲取的圖片路徑一直是64位編碼的,后臺只要正常的圖片路徑

首先,這不是 base64編碼的路徑,這就是base64編碼之后的圖片實(shí)體,準(zhǔn)確的說是 base64編碼的DATA URI你通過H5的 File API拿到這一大坨DATA URI是沒問題的;

然后,"后臺只要正常的圖片路徑" 這是扯犢子,前端上傳個(gè)本地的 URL 路徑(比如c://assets/pic1.jpg)給后臺是沒有意義的,后臺需要的是你上面的那一大坨base64 URI,他需要自己decode


const fs = require('fs');
const path = require('path');

const baseStr = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKUAAAA6CAIAAABeeQ4bAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MUNBNDgwNEFEQjhFMTFFNDk2QTJGNjFEQjczMjVGRjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MUNBNDgwNDlEQjhFMTFFNDk2QTJGNjFEQjczMjVGRjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QURGQTdDMzVEQjhEMTFFNDk2QTJGNjFEQjczMjVGRjYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QURGQTdDMzZEQjhEMTFFNDk2QTJGNjFEQjczMjVGRjYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4chVw4AAAVNklEQVR42uxdCVgT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";

function fileSaver(base64Str, filename = 'your_file_name', outputPath) {
    return new Promise((resolve, reject) => {
        const data = base64Str.split(',')[1];
        const buff = new Buffer(data, 'base64');
        const type = base64Str.match(/(?:image\/)(\w+)(?=;)/)[1];
        const savePath = path.resolve(outputPath, `${filename}.${type}`);

        fs.writeFile(savePath, buff, (err) => {
            if (err) {
                return reject(err);
            }
            return resolve(savePath);
        })
    })
}

fileSaver(baseStr, '2', './').then(
    (filepath) => console.log('File saved successfully,當(dāng)前遠(yuǎn)程地址是:%s', filepath ),
    (err) => console.log('File saved failed, resean : ' + err)
);
遲月 回答

style可以提出來放到單獨(dú)的文件中通過@import來引入,而且不想感染到其他的組件加上scoped就行

<template>
  <div></div>
</template>
<script>
export default {
}
</script>
<style scoped>
@import url('../style/common.css');
</style>
葬愛 回答

不知道ab.exe測試時(shí)什么原理,你自己寫一個(gè)多線程調(diào)用下就知道了會產(chǎn)生負(fù)數(shù)值的。

//php不會,用java寫了個(gè)test。
import redis.clients.jedis.Jedis;


public class Test {
    
    public static void main(String[] args) throws Exception {
        
        Jedis jedis = getJedis();
        jedis.set("nums", 50+"");
        close(jedis);
        
        for(int i = 0;i < 1000;i++){ //啟動1000個(gè)線程
            new Thread(new MyTask()).start();
        }
        
    }
    
    public static  Jedis getJedis(){
        Jedis j = new Jedis("xxxxx", 6379);
        j.auth("xxxx");
        return j;
    }
    
    public static void close(Jedis jedis){
        if(null == jedis){
            return;
        }
        jedis.close();
    }
}

class MyTask implements Runnable{
    @Override
    public void run() {
        Jedis j = Test.getJedis();
         String numStr = j.get("nums");
         Integer nums = Integer.valueOf(numStr);
        
        if(nums > 1){
             j.decr("nums");
        }else{
             System.out.println(nums);
        }
        Test.close(j);
    }
}

輸出結(jié)果出現(xiàn)負(fù)值。

焚音 回答

給你重新排版了下

#!/usr/bin/env python
# -*- coding: utf-8 -*-

print('我愛魚C工作室........................')
import random
secret=random.randint(1,10)
temp=input('猜猜小甲魚心里想的是數(shù)字幾:')
count=3

while count:
    while not temp.isdigit():
        temp=input('這不合法,請輸入一個(gè)合法整數(shù):')
        guess = int(temp)
        if guess==secret:
            print('猜對了,干的漂亮')
            break
        elif guess>secret:
                print('大了大了',end='')
        else:
            print('小了小了',end='')
    count-=1
    print(count)
    print('你還有%d次機(jī)會,請輸入:'%count,end=' ')
    guess=int(input())
    if count==1:
        print('你的次數(shù)已經(jīng)用完,不玩了。')
        print('小甲魚心里想的是數(shù)字%d'%secret,end=' ')
        break

執(zhí)行結(jié)果是這樣的

猜猜小甲魚心里想的是數(shù)字幾:7
2
你還有2次機(jī)會,請輸入: 9
1
你還有1次機(jī)會,請輸入: 2
你的次數(shù)已經(jīng)用完,不玩了。
小甲魚心里想的是數(shù)字3 

另外你可以熟悉下markdown,放代碼避免格式混亂

貓館 回答

一般來說RSA加密解密需要有兩方。一方拿公鑰加密,一方拿私鑰解密。你打算在小程序里實(shí)現(xiàn)的是加密還是解密呢?如果加密解密都有那意義何在?

可以明確一下具體需求嗎。

離夢 回答

看一下這個(gè)第三方插件能不能用,我之前做公眾號電子簽名,用的這個(gè),也是基于canvas的
鏈接描述

掛念你 回答

return() => import('./component/item1.form')
如果import有變量,那么需要使用字符串模板解析
return () => import(./component/item${this.formItem.item_type}.form);