我在MVC 5中创建了一个angularJs应用程序。我已经创建了一个指令,如下所示。
app.directive('clusterButton', function () {
return {
restrict: 'E',
scope: {
clusterInfo: '=info'
},
templateUrl: function(elem, attr){
return 'ClusterButtonTemplate';
}
};
});
我有.cshtml
名为ClusterButtonTemplate.cshtml
的文件,我在控制器类中创建了一个部分视图方法来返回此视图。因此angular js
指令绑定模板。
我需要删除mvc控制器类中的方法,需要直接引用模板文件。我不想使用cshtml
文件。我需要一个html
文件用于模板。我创建了一个ClusterButtonTemplate.html
文件。但是,在浏览器下方设置模板时,会显示404 error
。
app.directive('clusterButton', function () {
return {
restrict: 'E',
scope: {
clusterInfo: '=info'
},
templateUrl: function(elem, attr){
return 'ClusterButtonTemplate.html';
}
};
});
我在项目中没有使用angular js
路由。所有内容都使用MVC routing
进行管理。我该如何解决这个问题。我需要使用Angular routing
和MVC routing
吗?
答案 0 :(得分:4)
您需要放入MVC不会尝试将URL映射到控制器的位置。默认情况下,/Content
文件夹会被忽略,因此您可以在其下创建一个名为"模板"的文件夹。并将其用于URL。
templateUrl: function(elem, attr){
return '/Content/Templates/ClusterButtonTemplate.html';
答案 1 :(得分:0)
您可以尝试使用前导斜杠,因为它是使用相对路径加载的。
templateUrl: function(elem, attr){
return '/ClusterButtonTemplate.html';
}
答案 2 :(得分:0)
这非常简单!只需将html文件模板(作为内容)放在您喜欢的文件夹中(即app / phone-list / in project root),然后分配
templateUrl: '/app/phone-list/phone-list.template.html'
到controller templateUrl属性。 避免使用视图,模型或控制器文件夹......