在Chrome扩展弹出窗口中,Select2无法正常工作

时间:2013-01-28 22:21:21

标签: google-chrome-extension angularjs jquery-select2 angular-ui

我使用 AngularJS 和Angular-UI在Chrome扩展程序上遇到Select2的错误行为。

场景

Select2的内容通过AngularJs $ resouces模块异步加载。


会发生什么?

单击Select2时,应显示内容。


实际发生了什么?

当我第一次点击任何select2下拉列表时,它只是眨眼然后隐藏。


观测值:
相同的代码在chrome的扩展弹出窗口中运行得很好 你可以看到它在这里工作:http://moneynow2.apphb.com
并且可以浏览代码here at my github repository

2 个答案:

答案 0 :(得分:2)

我在Chrome扩展程序中工作正常,但我得到“拒绝执行内联事件处理程序,因为它违反了以下内容安全策略指令:”default-src'self'chrome-extension-resource:“。请注意,'script-src'未明确设置,因此'default-src'用作后备。“在Chrome控制台中。

答案 1 :(得分:0)

这真的很难测试。

在弹出窗口中,当我打开dropmenu时,路由被重新加载(整个控制器和ng-view重新加载的内容)。这不会发生在网页上。我认为弹出窗口出现在右下角,伸出窗户(当我走过它时就发生了)。当发生这种情况时,我认为它可能触发了一个窗口滚动事件,实际上导致select2消失(这是select2的一个特性,以防止dropmenu停留在某个随机位置,因为它是pos:fixed)。

我也不太了解chrome弹出窗口,以确定哪些事件可能导致'url'更改或触发滚动事件等。

首先,我建议做一些selectOptions = {data:$ myResource.query()}或其他什么,但我开始认为它无济于事。

建议:

尝试删除路由器,看看会发生什么。我真的不知道你应该在chrome扩展中烦恼它。在这么小的空间里,无论如何,更少的代码可能更好。