Merge pull request #448 from sveltejs/gh-441

reverse pre and post to fix deferred observers
pull/457/head
Rich Harris 8 years ago committed by GitHub
commit 35113bdee1

@ -12,7 +12,7 @@ export function fire ( eventName, data ) {
} }
export function observe ( key, callback, options ) { 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 ); ( group[ key ] || ( group[ key ] = [] ) ).push( callback );

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