当angularjs与spring一起工作时,子文件夹路由不起作用

时间:2016-01-13 14:13:46

标签: angularjs spring-mvc

我在我的项目中使用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设置为所有子文件夹?如果没有,建议其他方法来处理这个问题。

1 个答案:

答案 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"});
});