diff --git a/src/directives/if.js b/src/directives/if.js index 67c02cab4..f9ae2bb38 100644 --- a/src/directives/if.js +++ b/src/directives/if.js @@ -43,6 +43,11 @@ module.exports = { }, insert: function () { + // avoid duplicate inserts, since update() can be + // called with different truthy values + if (this.decompile) { + return + } var vm = this.vm var frag = templateParser.clone(this.template) var decompile = this.linker(vm, frag) diff --git a/test/unit/specs/directives/if_spec.js b/test/unit/specs/directives/if_spec.js index 75d1db257..d4d8d5179 100644 --- a/test/unit/specs/directives/if_spec.js +++ b/test/unit/specs/directives/if_spec.js @@ -145,6 +145,22 @@ if (_.inBrowser) { }) }) + it('v-if with different truthy values', function (done) { + var vm = new Vue({ + el: el, + data: { + a: 1 + }, + template: '