Javascript Visual Studio-对HTML模板和语法高亮显示使用自定义脚本标记类型

Javascript Visual Studio-对HTML模板和语法高亮显示使用自定义脚本标记类型,javascript,html,visual-studio,visual-studio-2012,angularjs,Javascript,Html,Visual Studio,Visual Studio 2012,Angularjs,我正在使用Visual Studio 2012编辑HTML和JavaScript。我在内联脚本标记中使用部分视图来添加模板(请参见下面的代码)。Javascript框架AngularJS要求类型为text/ng template,但Visual Studio不将其识别为HTML,也不提供语法突出显示。如果类型为text/HTML一切正常 我的问题:在VisualStudio2012中,有没有一种方法可以关联自定义脚本类型来进行HTML语法高亮显示?该解决方案不仅适用于文本/ng模板,还适用于需要

我正在使用Visual Studio 2012编辑HTML和JavaScript。我在内联脚本标记中使用部分视图来添加模板(请参见下面的代码)。Javascript框架AngularJS要求类型为
text/ng template
,但Visual Studio不将其识别为HTML,也不提供语法突出显示。如果类型为
text/HTML
一切正常

我的问题:在VisualStudio2012中,有没有一种方法可以关联自定义脚本类型来进行HTML语法高亮显示?该解决方案不仅适用于
文本/ng模板
,还适用于需要突出显示HTML语法的其他类型

<script type="text/ng-template" id="filterOrder.html">
    <!-- Sidebar comment-->
    Search: <input ng-model="query"/> 
    Sort by: 
    <select ng-model="orderProp">
        <option value="name">Alphabetical</option>
        <option value="age">Newest</option>
    </select>
    <div id="status">Current filter: {{query}}</div>
</script>

搜索:
排序方式:
按字母顺序排列的
最新的
当前筛选器:{{query}

我无法说服VS2012突出显示
文本/ng模板
脚本,因此我求助于使用
文本/模板
,并在启动代码中添加了一点。这将枚举您想要的任何类型的脚本标记,并将它们添加到$templateCache中

    var app = angular.module('app', [...]);

    app.run(function ($templateCache) {
        // <script type="text/ng-template"> ... is preferred, but VS 2012 doesn't give intellisense there
        angular.element('script[type="text/template"]').each(function(idx, el) {
            $templateCache.put(el.id, el.innerHTML);
        });
    });
这就是我所做的:

@using (Html.NgTemplate("Text"))
{
    <div class="control-group">
        <label class="control-label">{{item.label}}</label>
        <div class="controls">
            <input type="text" class="input-xxlarge" ng-model="item.value">
        </div>
    </div>
}
@使用(Html.NgTemplate(“Text”))
{
{{item.label}
}

Visual studio不知道它是一个脚本标记,并为我提供了完整的自动完成功能。

使用Trey Mack的回答,我无法获得class=”“中css类的列表

但是,通过将标记类型更改为text/html并修改app.run,我得到了语法和CSS类名列表

<script type="text/html" id="home.html">
    <h3>HTML intellisense, code completion, and formatting!</h3>
</script>

HTML智能感知、代码完成和格式!
然后

var app = angular.module('app', [...]);

app.run(function ($templateCache) {
    // <script type="text/ng-template"> ... is preferred, but VS 2012 doesn't give intellisense there
    angular.element('script[type="text/html"]').each(function(idx, el) {
        $templateCache.put(el.id, el.innerHTML);
    });
});
var-app=angular.module('app',[…]);
app.run(函数($templateCache){
//…是首选,但VS 2012没有提供intellisense
元素('script[type=“text/html”]”)。每个(函数(idx,el){
$templateCache.put(el.id,el.innerHTML);
});
});

另外,我使用VS 2015可能会有所帮助,但我不确定。正是因为这个原因,我使用templateUrl并从外部加载部分,每个部分都在自己的html文件中。是否有可能重复,有没有方法在不修改代码的情况下获得intellisense突出显示语法?
html.NgTemplate
是自定义帮助程序?a是的。精确地或类似于内置的
var app = angular.module('app', [...]);

app.run(function ($templateCache) {
    // <script type="text/ng-template"> ... is preferred, but VS 2012 doesn't give intellisense there
    angular.element('script[type="text/html"]').each(function(idx, el) {
        $templateCache.put(el.id, el.innerHTML);
    });
});