我有一个包含XML的部分,我将它包含在另一部分中。
<rootNode>
<firstName>{{ user.name }} </firstName>
<age>{{ user.age }}</age>
</rootNode>
如果我将此作为<div ng-include="partials/test.xml"></div>
的部分使用,则变量会很好,但所有标记现在都是小写的。
<rootnode>
<firstname>Austin</firstname>
<age>27</age>
</rootnode>
该XML不会针对期望正确案例的架构进行验证。
有没有办法告诉ng-include
指令保持案例相同,或者我是否需要使用像Mustache这样的其他库来执行此类模板?
答案 0 :(得分:1)
可以自定义内部转换,通过修改jqLite
(或jQuery,如果可用)来强制保留大小写,通过toLowerCase
方法对elements to be lowercase进行规范化。
否则,原生XMLSerializer
似乎是浏览器特定的:
如果您的标签包含大写字母和小写字母,那么DOM处理会非常混乱。这是由于XHTML标准:XHTML区分大小写,并且由于XHTML只接受小写HTML标记和属性名称,因此执行了常规搜索和替换功能以使用小写标记替换所有大写标记。但IE通过简单地运行保护区分大小写的所有XML操作而忽略了XHTML标准的这一方面。这样更方便,因为XML标准本身就区分大小写。
以下是Firefox中XML处理的冲突行为:
由于XHTML兼容性,所有xhtml标记都转换为LOWERCASE
- 中返回
Element对象的nodeName getter在UPPERCASE
XMLDocument对象通过将所有标记转换为大写来保存dom文档
- 醇>
XMLSerializer.serializeToString返回大写中的所有标记名称
因此,编写执行服务器端和客户端XML操作的健壮代码总是很困难,这种冲突的不区分大小写的DOM处理。即将到来的版本必须通过支持区分大小写来处理此问题。
<强>参考强>