[英]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.