Skip to content

Commit 63e28f6

Browse files
committed
Refactored v-model to use viewMeta. Also refactored and simplified viewMeta to a simple object. Closes nativescript-vue#15
1 parent eab9bba commit 63e28f6

File tree

6 files changed

+203
-89
lines changed

6 files changed

+203
-89
lines changed

nativescript-vue/dist/index.js

Lines changed: 133 additions & 58 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

nativescript-vue/dist/index.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

nativescript-vue/platform/nativescript/compiler/directives/model.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import {addHandler, addAttr} from 'compiler/helpers'
22
import {genComponentModel, genAssignmentCode} from 'compiler/directives/model'
3+
import {getViewMeta} from '../../element-registry'
34

45
const valueTypes = ['text', 'value', 'checked', 'date', 'selectedIndex', 'time']
56

@@ -13,7 +14,7 @@ export default function model(el, dir, _warn) {
1314

1415
function genDefaultModel(el, value, modifiers) {
1516
const {trim, number} = modifiers || {}
16-
const event = valueTypes.map(type => type + 'Change').join(',')
17+
const {prop, event} = getViewMeta(el.tag).model
1718

1819

1920
let valueExpression = `$event.value${trim ? '.trim()' : ''}`
@@ -24,6 +25,6 @@ function genDefaultModel(el, value, modifiers) {
2425

2526
const code = genAssignmentCode(value, valueExpression)
2627

27-
valueTypes.forEach(type => addAttr(el, type, `(${value})`))
28+
addAttr(el, prop, `(${value})`)
2829
addHandler(el, event, code, null, true)
2930
}

0 commit comments

Comments
 (0)