Skip to content

Commit

Permalink
fix(match): use fullPath for the param of * routes
Browse files Browse the repository at this point in the history
Fix #1994
Combining an asterisk route (*) with props: true would result in an
error because the name of the param would be the number 0 making it an
invalid attribute + the fact that vue passes props as attributes
if they're not declared as props
  • Loading branch information
posva committed Jan 14, 2018
1 parent 9e78ca2 commit 32b838d
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 4 deletions.
3 changes: 2 additions & 1 deletion src/create-matcher.js
Expand Up @@ -189,7 +189,8 @@ function matchRoute (
const key = regex.keys[i - 1]
const val = typeof m[i] === 'string' ? decodeURIComponent(m[i]) : m[i]
if (key) {
params[key.name] = val
// Fix #1994: using * with props: true generates a param named 0
params[key.name || 'fullPath'] = val
}
}
Expand Down
4 changes: 2 additions & 2 deletions test/e2e/specs/route-matching.js
Expand Up @@ -83,7 +83,7 @@ module.exports = {
route.matched[0].path === '/asterisk/*' &&
route.fullPath === '/asterisk/foo' &&
JSON.stringify(route.params) === JSON.stringify({
0: 'foo'
'fullPath': 'foo'
})
)
}, null, '/asterisk/foo')
Expand All @@ -96,7 +96,7 @@ module.exports = {
route.matched[0].path === '/asterisk/*' &&
route.fullPath === '/asterisk/foo/bar' &&
JSON.stringify(route.params) === JSON.stringify({
0: 'foo/bar'
'fullPath': 'foo/bar'
})
)
}, null, '/asterisk/foo/bar')
Expand Down
2 changes: 1 addition & 1 deletion test/unit/specs/create-matcher.spec.js
Expand Up @@ -3,7 +3,7 @@ import { createMatcher } from '../../../src/create-matcher'

const routes = [
{ path: '/', name: 'home', component: { name: 'home' }},
{ path: '/foo', name: 'foo', component: { name: 'foo' }},
{ path: '/foo', name: 'foo', component: { name: 'foo' }}
]

describe('Creating Matcher', function () {
Expand Down

0 comments on commit 32b838d

Please sign in to comment.