为什么谷歌驱动器选择器会影响ext js组合字段模板?

时间:2016-04-28 15:02:52

标签: javascript extjs combobox google-api google-picker

几年前,一位前同事在我维护的项目中添加了ext组件,特别是Combobox。现在,我尝试添加a google drive picker以允许用户从Google云端硬盘中选择项目。用户加载谷歌选择器后,如果他/她与组合框进行交互,则无法正确显示结果,尽管XHR请求正确地返回数据。我在boundlist.js文件中看到它创建XTemplate对象,但没有将它应用到商店中的每条记录......

Combobox results display before and after utilizing the google drive picker

是否有人处理此问题或类似问题?有没有办法避免两个JS库之间的冲突?

1 个答案:

答案 0 :(得分:2)

我遇到了与ExtJS 3.3相同的问题。

这是因为gdrive js客户端向称为值的数组原型添加了一个函数。 组合的XTemplate的子模板有一个目标"回调"像这样:

(function(values,parent
/**/) {
with(values){ return values; }
})

这"回调"由Ext.XTemplate函数生成。我修改了它来生成"回调"像这样:

(function(values,parent
/**/) {
if(typeof values.values != "function"){with(values){ return values; }} else {return values;}
})

的问候,
久洛