52

我认为 VS 2013 应该支持 angularjs 属性智能感知?出于某种原因,它不适用于我在最新版本的 Microsoft Visual Studio Ultimate 2013 版本 12.0.21005.1 上

收到以下验证警告:属性“ng-app”不是元素“html”的有效属性。
属性“ng-view”不是元素“div”的有效属性。

我在某处缺少 xsd 参考吗?

4

12 回答 12

65

我遇到了同样的问题,我做了以下事情,它有所帮助。

如果您使用的是 ReSharper,则可以添加一个扩展程序,该扩展程序将为您提供 Intellisense,并且不会发出警告。

VS>Resharper>Extension Manager>Search AngularJS 中的顶部菜单这将添加 Angular js 智能感知。

- - - -编辑 - - - -

使用 Resharper 8.2.1 锐化菜单

在此处输入图像描述

于 2014-02-15T23:32:24.973 回答
20

我知道这是旧的,但它仍然发生在我身上。要为 VS 2013 修复它,请按照以下说明进行操作:

1) 打开文件 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Packages\schemas\html\commonHTML5Types.xsd

2) 在文件中找到以这一行开头的区域: <xsd:attribute name="translate">. 向下滚动约 7 行以找到相应的结束标记:</xsd:attribute>

3)在结束标记上方</xsd:attributeGroup>,粘贴以下代码行:

<xsd:attribute name="ng-app" vs:category="Angular" />
<xsd:attribute name="ng-bind-html" vs:category="Angular" />
<xsd:attribute name="ng-bind-html-unsafe" vs:category="Angular" />
<xsd:attribute name="ng-bind-template" vs:category="Angular" />
<xsd:attribute name="ng-checked" vs:category="Angular" />
<xsd:attribute name="ng-class" vs:category="Angular" />
<xsd:attribute name="ng-class-even" vs:category="Angular" />
<xsd:attribute name="ng-class-odd" vs:category="Angular" />
<xsd:attribute name="ng-click" vs:category="Angular" />
<xsd:attribute name="ng-cloak" vs:category="Angular" />
<xsd:attribute name="ng-controller" vs:category="Angular" />
<xsd:attribute name="ng-csp" vs:category="Angular" />
<xsd:attribute name="ng-dblclick" vs:category="Angular" />
<xsd:attribute name="ng-disabled" vs:category="Angular" />
<xsd:attribute name="ng-form" vs:category="Angular" />
<xsd:attribute name="ng-hide" vs:category="Angular" />
<xsd:attribute name="ng-href" vs:category="Angular" />
<xsd:attribute name="ng-include" vs:category="Angular" />
<xsd:attribute name="ng-init" vs:category="Angular" />
<xsd:attribute name="ng-list" vs:category="Angular" />
<xsd:attribute name="ng-model" vs:category="Angular" />
<xsd:attribute name="ng-mousedown" vs:category="Angular" />
<xsd:attribute name="ng-mouseenter" vs:category="Angular" />
<xsd:attribute name="ng-mouseleave" vs:category="Angular" />
<xsd:attribute name="ng-mousemove" vs:category="Angular" />
<xsd:attribute name="ng-mouseover" vs:category="Angular" />
<xsd:attribute name="ng-mouseup" vs:category="Angular" />
<xsd:attribute name="ng-multiple" vs:category="Angular" />
<xsd:attribute name="ng-non-bindable" vs:category="Angular" />
<xsd:attribute name="ng-readonly" vs:category="Angular" />
<xsd:attribute name="ng-repeat" vs:category="Angular" />
<xsd:attribute name="ng-selected" vs:category="Angular" />
<xsd:attribute name="ng-show" vs:category="Angular" />
<xsd:attribute name="ng-src" vs:category="Angular" />
<xsd:attribute name="ng-style" vs:category="Angular" />
<xsd:attribute name="ng-switch" vs:category="Angular" />
<xsd:attribute name="ng-transclude" vs:category="Angular" />
<xsd:attribute name="ng-view" vs:category="Angular" />

保存文件并重新打开 VS2013。这应该可以解决问题。

于 2014-06-25T21:59:13.190 回答
17

我安装了http://vswebessentials.com/

创建了一个名为 _reference.js 的文件,其中包含内容

/// <autosync enabled="true" />
/// <reference path="angular.js" />
/// <reference path="underscore.js" />

我是从_references.js 背后的故事中了解到的

于 2014-07-30T18:08:00.757 回答
9

您也可以从 VS 2013 中的包管理器控制台运行它:Install-Package AngularJS.Intellisense。

于 2015-03-06T22:51:42.587 回答
9

如果您使用的是 ReSharper,请尝试关闭 ReSharper IntelliSense for HTML。

ReSharper > 选项 > IntelliSense > 常规 > 有限 ReSharper IntelliSense

笔记:

  • 这不会在 ASP.NET 文件中提供 AngularJS 智能感知
  • 更改设置后,您需要在 VS 中重新打开 HTML 文件
  • 当前版本的 ReSharper 是 8.2
于 2013-11-08T10:35:47.857 回答
5

尝试勾选Text Editor\HTML\General\Auto list members选项。

于 2013-11-10T20:37:19.733 回答
2

Visual Studio 2013 Update 4 删除了验证,但它不包括 IntelliSense for AngularJS。

支持自定义元素、聚合物元素和属性

我们不再验证自定义元素的未知属性,因为在不同的框架中会有许多自定义标签。所以在未知元素下将不再有曲线。

在 Visual Studio 2013 Update 4 RC 中宣布新的 Web 功能

下载Visual Studio 2013 更新 4

验证仅在 HTML 编辑器中被删除,而不是 HTML(Web 表单)编辑器。这意味着,默认情况下,.html 文件不会有自定义元素验证,但 .aspx 页面会有。如果像我一样,您认为这没有意义,请通过投票支持.aspx 文件中的自定义元素来表示您的支持。

于 2014-10-23T18:46:15.843 回答
1

遇到同样的问题。如果你在 VS 2013 上安装了 ReSharper,你可以通过安装 AngularJS 插件(由 JetBrains 提供)来获得 instellisense。

这是如何做到的:

  1. VS2013 > ReSharper > 管理扩展。
  2. 使用 Nuget 在线搜索“AngularJS”,然后单击“安装”。

以上应该可以满足您的需求。如果您需要图像指南,这里是链接 - http://jeeshenlee.com/2014/07/12/how-to-get-angularjs-intellisense-support-on-resharper/

于 2014-07-12T01:55:30.420 回答
1

我知道这篇文章很旧,问题专门针对 VS 2013,但是如果您仍在运行VS 2010并且想要应用 puargs 解决方案,您可以在 C:\Program Files (x86)\Microsoft Visual Studio 10.0\ 找到该文件Common7\Packages\schemas\html\html_5.xsd。

您需要在该<xsd:attributeGroup name="commonHTML5coreAttributeGroup">部分中添加 puargs 的代码。

Mads Kristensen 还讨论了 [将此解决方案应用于VS 2012] 1并在步骤 2 中提供了指向 2012 的 commonHTML5Types.xsd 更新版本的链接。

另请注意,puargs 和 Mads 列表都缺少ng-view上的属性,该属性导致“属性名称必须后跟等号 (=)”警告。完整的元素是:.<xsd:attribute name="ng-view" vs:category="Angular" vs:standalone="true"/>

于 2014-08-07T01:03:06.233 回答
0

我刚刚为 HTML 页面禁用了 resharper intellisense 并在 VS2013 上重新获得了 angular intellisense

于 2013-12-21T04:05:03.813 回答
0

您还可以摆脱警告:

http://madskristensen.net/post/angularjs-intellisense-in-visual-studio-2012

于 2014-03-27T15:54:09.857 回答
0

我没有尝试过 vs2013,但可以工作。使用 vs2012。 http://madskristensen.net/post/angularjs-intellisense-in-visual-studio-2012

于 2013-11-23T20:27:09.723 回答