如何避免角js路由器中的硬编码模板路径?

时间:2014-03-03 08:39:03

标签: angularjs angular-routing

我的角度路由器中有以下代码片段:

staticContent = xmlDoc.getElementsByTagName("staticContent")[0].childNodes[0].nodeValue;

 $stateProvider
    .state('home', {
         url: "/Home",
        views: {
            "main-view": {
                //templateUrl: "../../../views/Home.htm",   --Case 1
                 templateUrl: staticContent+"/Home.htm",   --Case 2
                controller: "homeCtrl"

            }
        }
    })

最初,我尝试了案例1的上述代码,它运行正常。问题是我需要避免使用硬编码路径,因为我的HTM文件将位于单独的服务器上。

但是,当我使用案例2中的代码时,应用程序根本不加载。 变量 staticContent 设置为“../../../ views”。从XML文件中读取此值(正确设置此值)。 如何避免路由器文件中的硬编码模板路径?

1 个答案:

答案 0 :(得分:2)

您可以将常量注入配置块

angular.module('app', [])

.constant('STATIC_CONTENT', xmlDoc.getElementsByTagName("staticContent")[0].childNodes[0].nodeValue)

.config(function ($stateProvider, STATIC_CONTENT) {
  $stateProvider
   .state('home', {
     url: "/Home",
     views: {
        "main-view": {
             templateUrl: STATIC_CONTENT + "/Home.htm",
            controller: "homeCtrl"

        }
    }
  })
});