1.9.1 vs. 1.8.3中的Angular.js/jQuery html字符串解析



尝试做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));

相关内容

  • 没有找到相关文章

最新更新