javascript – 如何使用jquery添加包含AngularJS表达式的ajax加载内容

我遇到了这些问题,希望你能指出我正确的方向.

这是fiddle.

解释器

1)我通过ajax请求收到一些模板html,一切正常,这就是它的样子:

        <div>
            <h2 class="splash" ng-bind="view.headline || 'That&#039;s cool'"></h2>
        </div>

正如你已经知道view.headline这将输出那很酷

2)将模板添加到dom(只是伪代码)

<div id="thisIsMyTemplatePlaceholder"></div>
<script>
var templateFromAjax="<h2 ng-bind=\"view.headline||'That&#039;s cool'\"></h2>";
$("#thisIsMyTemplatePlaceholder").html(templateFromAjax);
</script>

3)检查添加的HTML,你在ng-bind属性上看到三个”(撇号),这会导致我的错误

<div id="thisIsMyTemplatePlaceholder">
<h2 ng-bind="view.headline||'That's cool'"></h2>
</div>

4)问题似乎是jQuery.html()函数,因为它解码了特殊字符.

jquery is transforming this: 'That&#039;s cool' into 'That's'

最佳答案 尝试逃避两次.

一个转义将被删除,因为html()unescapes你的字符串,请参阅
here以供参考.

'That\\'s cool'\">That's cool</h2>";

现在,当您使用.attr(“ng-bind”)时,结果将是以下内容

view.headline || 'That\'s cool

这是你想要的效果,还是仅仅是那个很酷的作品?

点赞