Home / Function/ parseModel() — vue Function Reference

parseModel() — vue Function Reference

Architecture documentation for the parseModel() function in model.ts from the vue codebase.

Function typescript VueCore VDom calls 5 called by 1

Entity Profile

Dependency Diagram

graph TD
  07b38d85_6530_a99f_04cd_e166fb182374["parseModel()"]
  1f566fbb_35e7_982c_1234_287d1ad7f72c["model.ts"]
  07b38d85_6530_a99f_04cd_e166fb182374 -->|defined in| 1f566fbb_35e7_982c_1234_287d1ad7f72c
  bf9ddf1c_ef97_a050_8f03_7e20fe6e8f1c["genAssignmentCode()"]
  bf9ddf1c_ef97_a050_8f03_7e20fe6e8f1c -->|calls| 07b38d85_6530_a99f_04cd_e166fb182374
  0eec1a61_1577_da69_4ebc_4d92bfbee331["eof()"]
  07b38d85_6530_a99f_04cd_e166fb182374 -->|calls| 0eec1a61_1577_da69_4ebc_4d92bfbee331
  7a1c3810_086b_133b_165e_a80c336937d2["next()"]
  07b38d85_6530_a99f_04cd_e166fb182374 -->|calls| 7a1c3810_086b_133b_165e_a80c336937d2
  6d37d5b1_856a_f66b_a046_b4320271029b["isStringStart()"]
  07b38d85_6530_a99f_04cd_e166fb182374 -->|calls| 6d37d5b1_856a_f66b_a046_b4320271029b
  fb1e6895_8d14_a0f0_a2b9_e98147e8cdda["parseString()"]
  07b38d85_6530_a99f_04cd_e166fb182374 -->|calls| fb1e6895_8d14_a0f0_a2b9_e98147e8cdda
  cc1bb1f5_7aa4_946a_b64d_301753211a14["parseBracket()"]
  07b38d85_6530_a99f_04cd_e166fb182374 -->|calls| cc1bb1f5_7aa4_946a_b64d_301753211a14
  style 07b38d85_6530_a99f_04cd_e166fb182374 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

src/compiler/directives/model.ts lines 67–105

export function parseModel(val: string): ModelParseResult {
  // Fix https://github.com/vuejs/vue/pull/7730
  // allow v-model="obj.val " (trailing whitespace)
  val = val.trim()
  len = val.length

  if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {
    index = val.lastIndexOf('.')
    if (index > -1) {
      return {
        exp: val.slice(0, index),
        key: '"' + val.slice(index + 1) + '"'
      }
    } else {
      return {
        exp: val,
        key: null
      }
    }
  }

  str = val
  index = expressionPos = expressionEndPos = 0

  while (!eof()) {
    chr = next()
    /* istanbul ignore if */
    if (isStringStart(chr)) {
      parseString(chr)
    } else if (chr === 0x5b) {
      parseBracket(chr)
    }
  }

  return {
    exp: val.slice(0, expressionPos),
    key: val.slice(expressionPos + 1, expressionEndPos)
  }
}

Domain

Subdomains

Frequently Asked Questions

What does parseModel() do?
parseModel() is a function in the vue codebase, defined in src/compiler/directives/model.ts.
Where is parseModel() defined?
parseModel() is defined in src/compiler/directives/model.ts at line 67.
What does parseModel() call?
parseModel() calls 5 function(s): eof, isStringStart, next, parseBracket, parseString.
What calls parseModel()?
parseModel() is called by 1 function(s): genAssignmentCode.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free