尝试做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=preview1.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 . HTML新版的Migrate插件会恢复旧的行为。
的方法是使用任何一种修剪函数,无论是jquery的$。
请注意,这个问题只发生在试图使用模板从$templateCache,如果你使用模板或templateUrl attr上的指令它工作正常,我猜角内部修剪它。
如果你的字符串包含前导空格,你应该删除它们。
这个应该可以工作:
angular.element($.trim(stringWithHtmlStructure));