簡體   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