2016-08-03 49 views
0

我有一个asp.net cshtml文件,但我必须将脚本html与ids配合才能使ngRoutes正常工作。到目前为止,我CSHTML文件看起来像这样:如何在没有所有脚本文本的情况下将脚本包含到我的cshtml文件中

<div ng-view></div> 

<script type="text/ng-template id="one.html"> 
...very long html... 
</script> 
<script type="text/ng-template id="two.html"> 
...very long html... 
</script> 
<script type="text/ng-template id="three.html"> 
...very long html... 
</script> 
<script type="text/ng-template id="four.html"> 
...very long html... 
</script> 

我不想包括所有的脚本,但是需要用它来显示一个类似的指令。我我怎么能这样做?

<div ng-view></div> 
<div ng-include="'one.html''"></div> 
<div ng-include="'two.html''"></div> 
<div ng-include="'three.html''"></div> 

已经试过了方式,但它不允许我只是将其包含在剃刀文件。

回答

1

我假设你使用的是ngRoute。在这种情况下,你可以在配置阶段设置在routeProvider模板网址:

angular.module('yourmodule', ['ngRoute']) 
.config(['$routeProvider', function ($routeProvider) { 
    $routeProvider 
     .when('/one', { 
      templateUrl: 'one.html', 
     }) 
     .when('/two', { 
      templateUrl: 'two.html', 
     }); 
}]) 
+0

我使用ngRoute,但是当我把路径在templateurl文件,它无法正确加载路由链接在我的服务器上,但在我的本地。我真的想把所有的模板保存在一个单独的html文件中,但是当我在服务器上发布它时,我遇到了问题,当它在本地工作时很好。如果我在本地和服务器上包含

下的id脚本,它工作正常 – epv

+0

这可能是一个路径问题。 templateUrl需要包含从客户端(浏览器)看到的文件的完整路径。如果您的应用程序位于子目录中,则需要将这些添加到模板路径中。你可以在你最喜欢的浏览器的开发者工具中查看。 –

+0

我想我必须配置路由,以便如果它在本地主机上,它将使用when子句中的前导斜杠,并且在测试服务器主机中时,将其设置为不使用前导斜杠。 ngRoute不会允许when子句中的变量,所以我可以这样做,如果host在本地主机use/else中设置为“”开头。 – epv

相关问题