我是一个AngularJS新手,我正在尝试写一些基于AngularJS的Plone副词。
我遇到并不知道如何避免的问题是关于路由。
所以,比方说,我得到了一些Plone,即http://localhost/blah/my_page
此页面使用AngularJS及其路由。单击某个角管理按钮,用户将进入http://localhost/blah/my_page#/angular_page,该功能将正确工作。
这起作用,但只有在它恢复之前。当尝试刷新http://localhost/blah/my_page#/angular_page时,Plone的jQuery开始抱怨。
即,它在plone.app.jquery (1.7.2版)中引发语法错误,如下所示:
Uncaught Error: Syntax error, unrecognized expression: #/angular_page
m.error @ ++resource++plone.app.jquery.js:3
m.filter @ ++resource++plone.app.jquery.js:3
m @ ++resource++plone.app.jquery.js:3
c.querySelectorAll.m @ ++resource++plone.app.jquery.js:3
f.fn.extend.find @ ++resource++plone.app.jquery.js:3
(anonymous function) @ form_tabbing.js:166
e.extend.each @ ++resource++plone.app.jquery.js:2
e.fn.e.each @ ++resource++plone.app.jquery.js:2
$.fn.ploneTabInit @ form_tabbing.js:157
ploneFormTabbing.initialize @ form_tabbing.js:174
(anonymous function) @ form_tabbing.js:179
f.Callbacks.o @ ++resource++plone.app.jquery.js:2
f.Callbacks.p.fireWith @ ++resource++plone.app.jquery.js:2
e.extend.ready @ ++resource++plone.app.jquery.js:2
c.addEventListener.B @ ++resource++plone.app.jquery.js:2Plone的jQuery似乎验证了URL和角的部分不匹配它。
避免这个问题的最好方法是什么?谢谢你的帮助。
发布于 2015-07-21 14:47:47
万一有人遇到同样的问题,我终于找到了解决办法。
问题的根源在于form_tabbing.js文件,以及ploneTabInit函数中的以下代码:
var targetPane = item.find('.enableFormTabbing input[name="fieldset"]').val() || window.location.hash;
if (targetPane) {
item.find(".enableFormTabbing .formTabs " +
targetPane.replace("'", "").replace(/^#fieldset-/, "#fieldsetlegend-")).click();
}window.location.hash被分配给targetPane,因此出现了这个问题。它使用jQuery的Sizzle搜索引擎触发了对此值的搜索。类似于$('#/something')的搜索会引发语法错误。
在这个特定视图中禁用form_tabbing.js对我来说已经足够了。
https://stackoverflow.com/questions/31538859
复制相似问题