Visual Studio 2013 AngularJS智能感知支持

时间:2013-10-31 14:43:00

标签: angularjs visual-studio-2013

我认为VS 2013应该支持angularjs属性intellisense?由于某种原因,它不适用于最新版本的Microsoft Visual Studio Ultimate 2013版本12.0.21005.1

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

我错过了某处的xsd参考资料吗?

12 个答案:

答案 0 :(得分:65)

我遇到了同样的问题,我做了以下操作并且有所帮助。

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

VS> Resharper中的顶级菜单> Extension Manager>搜索AngularJS 这将添加角度js intellisense。

<强> ------- ------- EDIT

使用Resharper 8.2.1 Resharper Menu

enter image description here

答案 1 :(得分: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。这应该可以解决问题。

答案 2 :(得分:17)

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

创建了一个名为的文件 _reference.js 内容

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

我从The Story Behind _references.js

了解到了这一点

答案 3 :(得分:9)

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

ReSharper&gt;选项&gt; IntelliSense&gt;一般&gt;有限的ReSharper智能感知

注意:

  • 这不会在ASP.NET文件中提供AngularJS智能感知
  • 您需要在更改设置后在VS中重新打开HTML文件
  • 当前版本的ReSharper是8.2

答案 4 :(得分:9)

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

答案 5 :(得分:5)

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

答案 6 :(得分:2)

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

  

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

     

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

     

- Announcing new Web Features in Visual Studio 2013 Update 4 RC

下载Visual Studio 2013 Update 4

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

答案 7 :(得分:1)

遇到同样的问题。如果您像我一样在VS 2013上安装 ReSharper ,则可以通过安装AngularJS插件(由JetBrains提供)来获取instellisense。

以下是如何操作的:

  1. VS2013&gt; ReSharper&gt;管理扩展。
  2. 搜索&#34; AngularJS&#34;在线使用Nuget,然后点击&#34;安装&#34;。
  3. 以上应该可以满足您的需求。如果您需要图片指南,请点击链接 - http://jeeshenlee.com/2014/07/12/how-to-get-angularjs-intellisense-support-on-resharper/

答案 8 :(得分:1)

我知道这篇文章已经过时了,问题专门针对VS 2013,但是如果你还在运行 VS 2010 并想要应用puargs解决方案,你可以在C:\ Program找到该文件文件(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"/>

答案 9 :(得分:0)

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

答案 10 :(得分:0)

我刚刚为HTML页面禁用了resharper intellisense,并在VS2013上获得了角度智能感知

答案 11 :(得分:0)