10

Visual Studio 2012 html 编辑器坚持在检测到或配置的 html 架构中未找到标记名称时向我发出警告。

当我使用 Google 的 AngularJs 时,这种行为并不方便,因为它充分利用了所有主流浏览器都允许将自定义标签输入到 DOM 中的事实。

有没有办法提供自定义验证模式,还是我坚持使用 Microsoft 提供的硬编码模式?


请注意

我知道您可以通过取消选中 Tools->Options->Text Editor->HTML->Validation->Show Errors 来完全禁用验证。但是,我不想完全禁用验证。

4

2 回答 2

6

如果您愿意编辑您的验证规则文件,C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Packages\schemas\html\html_5.xsd您可以消除与 Angularjs 元素指令相关的验证错误。

首先备份原始的xsd文件。定义您的元素并将其添加到文件中。根据需要修改相关的父元素。保存并重新启动 VS2012。您的元素指令将不再生成 HTML5 验证错误。

例如,给定一个元素指令“schema-form-fields”:

  1. 嵌套在字段集中
  2. 需要属性“字段”、“模型”和“模式”

以下修改的字段集和新的模式表单字段声明消除了不需要的验证错误。

<xsd:element name="fieldset">
    <xsd:complexType mixed="true">
        <xsd:choice>
            <xsd:element name="legend" type="legendType" minOccurs="0" maxOccurs="1" />
            <xsd:element ref="schema-form-fields" minOccurs="0" maxOccurs="1"/>
            <xsd:group ref="flowContent" />
        </xsd:choice>
        <xsd:attributeGroup ref="commonAttributeGroup" />
        <xsd:attribute name="disabled" vs:standalone="true" />
        <xsd:attribute name="form"  vs:associatedcontrolid="form" />
        <xsd:attribute name="name" />
    </xsd:complexType>
</xsd:element>

<xsd:element name="schema-form-fields">
    <xsd:complexType mixed="true">
        <xsd:attribute name="fields" type="xsd:string" use="required" />
        <xsd:attribute name="model" type="xsd:string" use="required" />
        <xsd:attribute name="schema" type="xsd:string" use="required" />
    </xsd:complexType>
</xsd:element>
于 2014-05-22T19:29:24.713 回答
3

我不知道我是否正确理解了你的问题。

如果你说 VS2012 总是在 ng- 属性上显示错误,这里是解决方案。

  1. 在 ng- 之前添加 data-,所以它将是 data-ng-*

  2. 安装这个AngularJS 智能感知支持。

对于 VS2010 试试这个

于 2013-02-20T16:57:52.737 回答