radio.js 728 B

1234567891011121314151617181920212223242526272829303132333435
  1. var _ = require('../../util')
  2. module.exports = {
  3. bind: function () {
  4. var self = this
  5. var el = this.el
  6. var number = this._checkParam('number') != null
  7. var expression = this._checkParam('exp')
  8. this.getValue = function () {
  9. var val = el.value
  10. if (number) {
  11. val = _.toNumber(val)
  12. } else if (expression !== null) {
  13. val = self.vm.$eval(expression)
  14. }
  15. return val
  16. }
  17. this.on('change', function () {
  18. self.set(self.getValue())
  19. })
  20. if (el.checked) {
  21. this._initValue = this.getValue()
  22. }
  23. },
  24. update: function (value) {
  25. /* eslint-disable eqeqeq */
  26. this.el.checked = value == this.getValue()
  27. /* eslint-enable eqeqeq */
  28. }
  29. }