|
@@ -5,7 +5,7 @@ import { parseHTML } from './html-parser'
|
|
|
import { parseText } from './text-parser'
|
|
import { parseText } from './text-parser'
|
|
|
import { parseFilters } from './filter-parser'
|
|
import { parseFilters } from './filter-parser'
|
|
|
import { genAssignmentCode } from '../directives/model'
|
|
import { genAssignmentCode } from '../directives/model'
|
|
|
-import { extend, cached, no, camelize } from 'shared/util'
|
|
|
|
|
|
|
+import { extend, cached, no, camelize, hyphenate } from 'shared/util'
|
|
|
import { isIE, isEdge, isServerRendering } from 'core/util/env'
|
|
import { isIE, isEdge, isServerRendering } from 'core/util/env'
|
|
|
|
|
|
|
|
import {
|
|
import {
|
|
@@ -524,7 +524,7 @@ function processComponent (el) {
|
|
|
|
|
|
|
|
function processAttrs (el) {
|
|
function processAttrs (el) {
|
|
|
const list = el.attrsList
|
|
const list = el.attrsList
|
|
|
- let i, l, name, rawName, value, modifiers, isProp
|
|
|
|
|
|
|
+ let i, l, name, rawName, value, modifiers, isProp, syncGen
|
|
|
for (i = 0, l = list.length; i < l; i++) {
|
|
for (i = 0, l = list.length; i < l; i++) {
|
|
|
name = rawName = list[i].name
|
|
name = rawName = list[i].name
|
|
|
value = list[i].value
|
|
value = list[i].value
|
|
@@ -558,11 +558,19 @@ function processAttrs (el) {
|
|
|
name = camelize(name)
|
|
name = camelize(name)
|
|
|
}
|
|
}
|
|
|
if (modifiers.sync) {
|
|
if (modifiers.sync) {
|
|
|
|
|
+ syncGen = genAssignmentCode(value, `$event`)
|
|
|
addHandler(
|
|
addHandler(
|
|
|
el,
|
|
el,
|
|
|
`update:${camelize(name)}`,
|
|
`update:${camelize(name)}`,
|
|
|
- genAssignmentCode(value, `$event`)
|
|
|
|
|
|
|
+ syncGen
|
|
|
)
|
|
)
|
|
|
|
|
+ if (hyphenate(name) !== camelize(name)) {
|
|
|
|
|
+ addHandler(
|
|
|
|
|
+ el,
|
|
|
|
|
+ `update:${hyphenate(name)}`,
|
|
|
|
|
+ syncGen
|
|
|
|
|
+ )
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
if (isProp || (
|
|
if (isProp || (
|