繁体   English   中英

Angular.js / jQuery html字符串解析在1.9.1和1.8.3中

[英]Angular.js/jQuery html string parsing in 1.9.1 vs. 1.8.3

试着做angular.element(stringWithHtmlStructure); 原因

Error: Syntax error, unrecognized expression: <div id="foo">bar</div>

在jquery 1.9.1中,它适用于jquery 1.8.3

这是一个问题还是一个功能? 安全一个或许? 我该如何处理?

1.8.3示例http://plnkr.co/edit/ZYYKIixcYzOL46hq0puS?p=preview 1.9.1示例http://plnkr.co/edit/ETmQMY8KoCP0gaKdSrMD?p=preview

这绝对不是任何有角度的东西的问题,做$(stringWithHtmlStructure)失败就像你在这里看到的那样http://plnkr.co/edit/FqvOKZ62t0IJ57cT05ew?p=preview

问题肯定是jquery 1.9.1

带有前导空格的HTML字符串:出于安全原因,jQuery 1.9限制了$()处理的字符串。 虽然我们建议您使用$ .parseHTML()来处理任意HTML模板,但1.1.0版本的Migrate插件会恢复旧的行为。

处理它的方法是使用任何类型的修剪功能,无论是jquery的$ .trim还是下划线修剪甚至是你自己的修剪。

请注意,只有在尝试使用$ templateCache中的模板时才会出现此问题,如果您在指令上使用模板或templateUrl attr它工作正常,我猜角度内部修剪它。

如果您的字符串包含前导空格,则应将其删除。

这应该工作:

angular.element($.trim(stringWithHtmlStructure));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM