Home / Function/ parseModel() — vue Function Reference

parseModel() — vue Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  e78b407b_2750_6e22_28fc_81e51f73bd1d["parseModel()"]
  8d523c5a_6bbc_3e71_cb43_8252874a3ea9["model.ts"]
  e78b407b_2750_6e22_28fc_81e51f73bd1d -->|defined in| 8d523c5a_6bbc_3e71_cb43_8252874a3ea9
  65a029a4_19bc_73e7_6dce_b5010c35150b["genAssignmentCode()"]
  65a029a4_19bc_73e7_6dce_b5010c35150b -->|calls| e78b407b_2750_6e22_28fc_81e51f73bd1d
  8eea3d45_d498_5630_d128_14a2648ebb4e["eof()"]
  e78b407b_2750_6e22_28fc_81e51f73bd1d -->|calls| 8eea3d45_d498_5630_d128_14a2648ebb4e
  85917809_6399_9258_abd6_4ed3b3c1412f["next()"]
  e78b407b_2750_6e22_28fc_81e51f73bd1d -->|calls| 85917809_6399_9258_abd6_4ed3b3c1412f
  5f7f0433_a09b_e253_5ebb_46ff3635eb4d["isStringStart()"]
  e78b407b_2750_6e22_28fc_81e51f73bd1d -->|calls| 5f7f0433_a09b_e253_5ebb_46ff3635eb4d
  9fda5030_0446_d994_20d4_b25dd1a6fb2c["parseString()"]
  e78b407b_2750_6e22_28fc_81e51f73bd1d -->|calls| 9fda5030_0446_d994_20d4_b25dd1a6fb2c
  79b2d9d0_237d_bc42_ff30_59548689087e["parseBracket()"]
  e78b407b_2750_6e22_28fc_81e51f73bd1d -->|calls| 79b2d9d0_237d_bc42_ff30_59548689087e
  style e78b407b_2750_6e22_28fc_81e51f73bd1d 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