File tree Expand file tree Collapse file tree 3 files changed +23
-2
lines changed Expand file tree Collapse file tree 3 files changed +23
-2
lines changed Original file line number Diff line number Diff line change @@ -527,7 +527,7 @@ function makePropsLinkFn (props) {
527
527
// one time binding
528
528
value = vm . $parent . $get ( prop . parentPath )
529
529
if ( _ . assertProp ( prop , value ) ) {
530
- vm . _data [ path ] = value
530
+ vm [ path ] = vm . _data [ path ] = value
531
531
}
532
532
} else {
533
533
// dynamic binding
@@ -544,7 +544,7 @@ function makePropsLinkFn (props) {
544
544
// literal, cast it and just set once
545
545
value = _ . toBoolean ( _ . toNumber ( prop . raw ) )
546
546
if ( _ . assertProp ( prop , value ) ) {
547
- vm . _data [ path ] = value
547
+ vm [ path ] = vm . _data [ path ] = value
548
548
}
549
549
}
550
550
}
Original file line number Diff line number Diff line change @@ -205,9 +205,13 @@ if (_.inBrowser) {
205
205
// literal and one time should've been set on the _data
206
206
// and numbers should be casted
207
207
expect ( Object . keys ( vm . _data ) . length ) . toBe ( 5 )
208
+ expect ( vm . a ) . toBe ( 1 )
208
209
expect ( vm . _data . a ) . toBe ( 1 )
210
+ expect ( vm . someOtherAttr ) . toBe ( 2 )
209
211
expect ( vm . _data . someOtherAttr ) . toBe ( 2 )
212
+ expect ( vm . onetime ) . toBe ( 'from parent: a' )
210
213
expect ( vm . _data . onetime ) . toBe ( 'from parent: a' )
214
+ expect ( vm . booleanLiteral ) . toBe ( 'from parent: true' )
211
215
expect ( vm . _data . booleanLiteral ) . toBe ( 'from parent: true' )
212
216
expect ( vm . _data . camelCase ) . toBeUndefined ( )
213
217
// camelCase should've warn
Original file line number Diff line number Diff line change @@ -65,6 +65,23 @@ describe('Instance Scope', function () {
65
65
expect ( vm . c ) . toBe ( 2 )
66
66
} )
67
67
68
+ it ( 'props should be available in data() and create()' , function ( ) {
69
+ var el = document . createElement ( 'div' )
70
+ el . setAttribute ( 'c' , '2' )
71
+ var vm = new Vue ( {
72
+ el : el ,
73
+ props : [ 'c' ] ,
74
+ data : function ( ) {
75
+ expect ( this . c ) . toBe ( 2 )
76
+ expect ( this . _data . c ) . toBe ( 2 )
77
+ } ,
78
+ created : function ( ) {
79
+ expect ( this . c ) . toBe ( 2 )
80
+ expect ( this . _data . c ) . toBe ( 2 )
81
+ }
82
+ } )
83
+ } )
84
+
68
85
it ( 'replace $data' , function ( ) {
69
86
var vm = new Vue ( {
70
87
data : {
You can’t perform that action at this time.
0 commit comments