字符“›”(›) 在 IE11 中打破 angular

Character "›" (›) breaking angular in IE11

我在 IE11 中使用字符时遇到问题。它在 angular 指令中的 jade 模板中使用,这只是 IE11 中的一个问题。

我有两个 span 标签,第一个包含字符“›”,下一个包含 {{ var }}。该变量在浏览器中按字面意思打印为“{{ var }}”而不是 "val",但是当我将第一个跨度内容更改为其他任何内容时,{{ var }} 呈现为 [=28] =].

我已经尝试使用 HTML 实体 (›),但它仍然无法正常工作。我已经尝试了其他几个 HTML 个实体,它们工作得很好。

这似乎是这个特定角色的问题。有谁知道这是为什么?

代码如下:

span.rsaquo  ›
span.subcategory  {{ category.subname }}

这是输出:

我已经在我的代码中直接使用双尖括号字符看到了这个问题。我还发现是在使用 ndash 字符时。我找到的解决方案是在任何你想使用这些有趣字符的地方使用 ng-bind-template 属性。

<span ng-bind-template="rsaquo >">
    <span>{{category.subname}}</span>
</span>

<span ng-bind-template="rsaquo >">
    <span ng-bind="category.subname"></span>
</span>

根本问题是 IE 停止处理 javascript 具有这些字符的 DOM 元素(尽管我不确定为什么)。它仅对包含该字符的元素以及所有子元素进行沙盒处理。

只有当页面加载时字符直接出现在 HTML 中时才会发生。这就是为什么如果你把它放在 ng-bind-template 指令中,IE 直到所有内容加载并处理完之后才会看到它。

span.rsaquo  ›

你有一个space。尝试不给 space 这样的:

span.rsaquo›