我正在尝试使用VueJS通过AJAX填充我的jQuery Chosen下拉字段,但是当我应用新值时,它不会更新Chosen下拉列表。
我已经尝试了多种操作,例如在我们获得AJAX响应时手动触发$('.cs-select').trigger("chosen:updated");
但我认为这不起作用,因为VueJS需要几秒钟才能将结果解析为所有下拉列表(我有大约20个一页上的相同值。)
这里有一个不起作用的例子,一旦所有东西都准备就绪,我就会加入阿姆斯特丹市,但只会出现在非JS下拉列表中:http://jsfiddle.net/qfy6s9Lj/106/
任何人都能轻松解决问题?我觉得使用setTimeout()
是不可取的。
答案 0 :(得分:0)
这是一个解决方案,但需要一些工作。首先,如果您更新为使用1.0版本的Vue,则可以访问params值,这样您可以在向cities
数组引用(https://vuejs.org/guide/custom-directive.html#params)添加项目时设置观察程序。但是,您需要使用v-for
列出选项,因为在1.0中您需要手动写出选项元素https://vuejs.org/guide/forms.html#Select
我相信它不起作用的原因。是因为当您的自定义指令中的选项发生更改时,没有任何内容可以监听该更改。 update
函数仅侦听对v-chosen
提供的变量的更改。
根据您的需求和时间范围,您可能希望一直升级到2.0。它仍处于测试阶段,但已接近官方发布。在2.0中,您将创建一个自定义组件来处理插件,例如(https://github.com/vuejs/vue/blob/next/examples/select2/index.html)这是1.0中的指令,现在是2.0中的组件。