zoukankan      html  css  js  c++  java
  • js字符截取与字符拼接

    昨天写标签的时候碰到的,用饿了么组件Tag的时候返回的是将数组变成由逗号拼接的字符串

    <el-form-item label="" :label-width="formLabelWidth">
          <el-tag
            v-for="tag in dynamicTags"
            :key="tag"
            style="margin-right:10px"
            closable
            :disable-transitions="false"
            @close="handleClose(tag)"
          >
            {{ tag }}
          </el-tag>
          <el-input
            v-if="inputVisible"
            ref="saveTagInput"
            v-model="mark"
            class="input-new-tag"
            size="small"
            :maxlength="20"
            @keyup.enter.native="handleInputConfirm"
            @blur="handleInputConfirm"
          >
            <template slot="prepend">
              <el-button tab-index="-1">标签</el-button>
            </template>
          </el-input>
          <el-button
            v-else
            class="button-new-tag"
            size="small"
            @click="showInput"
          >+ 图标标签</el-button>
        </el-form-item>
     dynamicTags: [],
          inputVisible: false,
          mark: '',
          marks: ''
     methods: {
        handleClose(tag) {
          this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1)
        },
    
        showInput() {
          this.inputVisible = true
          this.$nextTick(_ => {
            this.$refs.saveTagInput.$refs.input.focus()
          })
        },
    
        handleInputConfirm() {
          const mark = this.mark
          if (mark) {
            this.dynamicTags.push(mark)
          }
          this.inputVisible = false
          this.mark = ''
        },
    .................................
    submitForm(formName) {
          this.$refs[formName].validate(valid => {
            if (valid) {
              this.loading = true
              if (this.dynamicTags.length <= 0) {
                this.$message.error('请添加图标标签后提交')
                return
              }
              this.marks = this.dynamicTags.join(',')
    
              this.form.marks = this.marks
              this.$request
                .postJSON('goods/iconStoreClouds/save', this.form)
                .then(res => {
                  this.loading = false
                  if (res.success) {
                    this.$message({
                      showClose: true,
                      message: res.message,
                      type: 'success'
                    })
                    this.clearModel()
                  } else {
                    this.$message.error(res.message)
                  }
                })
                .catch(res => {
                  this.loading = false
                })
            } else {
              return false
            }
          })
        }

    将数组dynamicTags[]用逗号拼接的时候生成了一个字符串marks用的是这句代码

    this.marks = this.dynamicTags.join(',')

    join() 方法用于把数组中的所有元素放入一个字符串。

    元素是通过指定的分隔符进行分隔的。

    而在页面回显的时候,要将marks重新变为数组则需要如下处理:

    // 编辑图标信息
        editImg(id) {
          this.editImgId = id;
          this.$request
            .get("goods/iconStoreClouds/" + id + "/update", {})
            .then(res => {
              if (res.success) {
                this.showEdit = true;
                this.form = res.content;
                if (this.form.marks) {
                  this.dynamicTags = this.form.marks.split(",");
                }
              }
            })
            .catch(res => {});
        },

    split() 方法用于把一个字符串分割成字符串数组。

     this.dynamicTags = this.form.marks.split(",");
  • 相关阅读:
    【Apollo】Apollo 分布式部署
    【Spring】SpringBatch快速入门
    Nacos、Apollo、Spring Cloud Config微服务配置中心对比
    IDEA或Android Studio用书签功能标识代码 Stars
    Jetpack架构组件学习(0)——总结篇 Stars
    Android Studio导出APP的数据库db文件 Stars
    Jetpack架构组件学习(1)——LifeCycle的使用 Stars
    JavaFx Tooltip悬浮提示使用及自定义 Stars
    JavaFx WebView使用研究 Stars
    Jetpack架构组件学习(2)——ViewModel和Livedata使用 Stars
  • 原文地址:https://www.cnblogs.com/vivin-echo/p/14101137.html
Copyright © 2011-2022 走看看