2016-01-13 22 views
2

我在我的項目中使用了spring和angular js。在春天我設置視圖解析器如下,當angularjs和spring一起工作時,子文件夾路由不起作用

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

這裏的子視圖是視圖folder.Since的子文件夾我設置視圖解析器來查看文件夾代碼只有它不支持視圖/子視圖/ test.html文件。

是否有可能將Prefix設置爲所有子文件夾?如果沒有,建議其他方式來處理這個問題。

回答

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"}); 
}); 
+0

它正常工作與angularjs但如果加上春天這是行不通的。而且,我認爲問題在於Spring的ViewResolver而不是angularjs。 – Manikandan