set property for "muted" in v-bind (fix #2042)

This commit is contained in:
Evan You 2015-12-17 14:35:20 -05:00
parent e1d6b3ede8
commit 90c92fbdb1
2 changed files with 15 additions and 12 deletions

View File

@ -5,13 +5,12 @@ import vStyle from '../internal/style'
const xlinkNS = 'http://www.w3.org/1999/xlink'
const xlinkRE = /^xlink:/
// these input element attributes should also set their
// corresponding properties
const inputProps = {
value: 1,
checked: 1,
selected: 1
}
// check for attributes that prohibit interpolations
const disallowedInterpAttrRE = /^v-|^:|^@|^(is|transition|transition-mode|debounce|track-by|stagger|enter-stagger|leave-stagger)$/
// these attributes should also set their corresponding properties
// because they only affect the initial state of the element
const attrWithPropsRE = /^(value|checked|selected|muted)$/
// these attributes should set a hidden property for
// binding v-model to object values
@ -21,9 +20,6 @@ const modelProps = {
'false-value': '_falseValue'
}
// check for attributes that prohibit interpolations
const disallowedInterpAttrRE = /^v-|^:|^@|^(is|transition|transition-mode|debounce|track-by|stagger|enter-stagger|leave-stagger)$/
export default {
priority: 850,
@ -90,7 +86,11 @@ export default {
handleObject: vStyle.handleObject,
handleSingle (attr, value) {
if (inputProps[attr] && attr in this.el) {
if (
!this.descriptor.interp &&
attrWithPropsRE.test(attr) &&
attr in this.el
) {
this.el[attr] = attr === 'value'
? value == null // IE9 will set input.value to "null" for null...
? ''

View File

@ -7,7 +7,10 @@ describe('v-bind', function () {
var el, dir
beforeEach(function () {
el = document.createElement('div')
dir = {el: el}
dir = {
el: el,
descriptor: {}
}
_.extend(dir, def)
})