微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用jquery-selected插件更新vuejs模型值

试图使用 jquery-chosen与vue,问题是这个插件隐藏了我应用v-model的实际选择,所以当我选择一个值时,vue不会将其识别为select change事件,并且模型值不会更新.

当我选择某些东西时,select的值实际上正在改变,我已经使用console.log检查了它以查看所选的值.

http://jsfiddle.net/qfy6s9Lj/3/

我可以做vm.$data.city = $(‘.cs-select’).val(),that似乎工作,
但还有另一种选择吗?如果select的值被更改,为什么vue没有看到这个?

解决方法

回答:
http://jsfiddle.net/qfy6s9Lj/5/
<div id='search-results'>
    Vue model value <br>
    {{city}}
    <hr>
    Select value:
    <select class="cs-select" v-chosen>
       <option value="Toronto">Toronto</option>
       <option value="Orleans">Orleans</option>
    </select>
</div>

Vue.directive('chosen',{
    bind: function () {
        var vm = this.vm;
        this.el.options = vm.cities;
        this.el.value = vm.city;       

        $(this.el).chosen({
            inherit_select_classes: true,width: '30%',disable_search_threshold: 999})
        .change( function() {
             vm.city = this.el.value;
         }.bind(this)
      );
    }
});

var vm = new Vue({
  data: {
      city: 'Toronto',cities: ['Toronto','Orleans']
  }
}).$mount("#search-results");

更新:更好的解决方案(感谢simplesmiler):
http://jsfiddle.net/simplesmiler/qfy6s9Lj/8/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐