我在我的项目中使用spring和angular js。在春天,我将视图解析器设置如下,
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/views/");
return viewResolver;
}
在angularjs中,我尝试路由views / subview / test.html。代码如下,
$stateProvider
.state("test", {url: "/test", templateUrl: "subview/test.html"});
});
此处子视图是视图文件夹的子文件夹。由于我将视图解析器设置为仅查看文件夹,因此它不支持view / subview / test.html。
是否可以将setPrefix设置为所有子文件夹?如果没有,建议其他方法来处理这个问题。
答案 0 :(得分:2)
不需要每次都设置完整路径 - 路径相对于应用程序运行的顶级html页面 - 您当然可以使用变量来管理它。例如。
var baseTemplatePath = "/WEB-INF/views/";
$stateProvider
.state("test", {url: "/test", templateUrl: baseTemplatePath + "subview/test.html"});
});
您还可以将变量放在更高级别的服务中,以便随处访问。
angular.app("yourApp")
.service("pathService", function() {
return {
baseTemplatePath: "/WEB-INF/views/"
};
});
然后使用(确保已注入pathService):
$stateProvider
.state("test", {url: "/test", templateUrl: pathService.baseTemplatePath + "subview/test.html"});
});