我使用 AngularJS 和Angular-UI在Chrome扩展程序上遇到Select2的错误行为。
Select2的内容通过AngularJs $ resouces模块异步加载。
单击Select2时,应显示内容。
当我第一次点击任何select2下拉列表时,它只是眨眼然后隐藏。
观测值:
相同的代码在chrome的扩展弹出窗口中运行得很好
你可以看到它在这里工作:http://moneynow2.apphb.com。
并且可以浏览代码here at my github repository。
答案 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扩展中烦恼它。在这么小的空间里,无论如何,更少的代码可能更好。