我遇到了这些问题,希望你能指出我正确的方向.
这是fiddle.
解释器
1)我通过ajax请求收到一些模板html,一切正常,这就是它的样子:
<div>
<h2 class="splash" ng-bind="view.headline || 'That's cool'"></h2>
</div>
正如你已经知道view.headline这将输出那很酷
2)将模板添加到dom(只是伪代码)
<div id="thisIsMyTemplatePlaceholder"></div>
<script>
var templateFromAjax="<h2 ng-bind=\"view.headline||'That'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's cool' into 'That's'
最佳答案 尝试逃避两次.
一个转义将被删除,因为html()unescapes你的字符串,请参阅
here以供参考.
'That\\'s cool'\">That's cool</h2>";
现在,当您使用.attr(“ng-bind”)时,结果将是以下内容
view.headline || 'That\'s cool
这是你想要的效果,还是仅仅是那个很酷的作品?