Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript vue js jquery切换器_Javascript_Jquery_Vue.js - Fatal编程技术网

Javascript vue js jquery切换器

Javascript vue js jquery切换器,javascript,jquery,vue.js,Javascript,Jquery,Vue.js,我正在尝试绑定一组复选框,同时使用一个名为switcher的jQuery插件(它也由Pixel Admin主题包装)。 我的问题是它没有初始化插件 HTML {{partnerType.name} checkbox.js Vue.directive('checkbox', function(value) { $(this.el).switcher({ theme: 'modern', on_state_content: '', off_

我正在尝试绑定一组复选框,同时使用一个名为switcher的jQuery插件(它也由Pixel Admin主题包装)。 我的问题是它没有初始化插件

HTML


{{partnerType.name}
checkbox.js

Vue.directive('checkbox', function(value) {
    $(this.el).switcher({
        theme: 'modern',
        on_state_content: '',
        off_state_content: ''
    });

    if(value)
        $(this.el).addClass('checked');
    else
        $(this.el).removeClass('checked');
});

show.js
文件中,我基本上有一个
checkedPartnerTypes:[]
数组,我在每次请求后都会更新它。

您的指令从未真正更新过,因为您没有将值传递给
v-checkbox
。当您只需要
update
方法时,您使用的速记

您可能只想在
bind
中执行类似的操作,因为插件会检测元素是否被选中

Vue.directive('checkbox', {
  bind: function () {
    $(this.el).switcher();
  }
});

这样,它只应用一次。

我必须通过jQuery手动更新它的状态(同时将选中的类添加到父元素)。不过,区别在于,我没有告诉指令是否选中了复选框,因此我最终只是使用
v-checkbox=“typeIsChecked(partnerType.id)”
将其状态作为布尔值传递,现在它工作得很好!谢谢