reverse pre and post to fix deferrerd observers (fixes #441)

pull/448/head
Rich Harris 8 years ago
parent d105b6ba4c
commit 7219202471

@ -12,7 +12,7 @@ export function fire ( eventName, data ) {
}
export function observe ( key, callback, options ) {
var group = ( options && options.defer ) ? this._observers.pre : this._observers.post;
var group = ( options && options.defer ) ? this._observers.post : this._observers.pre;
( group[ key ] || ( group[ key ] = [] ) ).push( callback );

@ -135,14 +135,14 @@ describe( 'generate', () => {
assert.htmlEqual( target.innerHTML, config.html );
}
Object.assign = Object_assign;
if ( config.test ) {
config.test( assert, component, target, window );
} else {
component.destroy();
assert.equal( target.innerHTML, '' );
}
Object.assign = Object_assign;
})
.catch( err => {
Object.assign = Object_assign;

@ -0,0 +1,22 @@
export default {
'skip-ssr': true,
data: {
value: 'hello!'
},
html: `
<p>hello!</p>
<p>hello!</p>
`,
test ( assert, component, target ) {
component.set({ value: 'goodbye!' });
assert.htmlEqual( target.innerHTML, `
<p>goodbye!</p>
<p>goodbye!</p>
` );
component.destroy();
}
};

@ -0,0 +1,14 @@
<p ref:a>{{value}}</p>
<p ref:b></p>
<script>
export default {
oncreate () {
this.observe( 'value', () => {
this.refs.b.textContent = this.refs.a.textContent;
}, {
defer: true
});
}
};
</script>
Loading…
Cancel
Save