将网址存储在单独的文件中

时间:2014-07-24 16:30:17

标签: javascript angularjs angularjs-routing

我正在处理Angular Routing并且在我的javascript文件中直接硬编码了URL。但是,我需要将这些URL保存在一个单独的文件中,我应该在哪里保留它?鉴于我正在使用CQ Adove 5环境,我无法用XML或java中的变量映射它们。

  1. 是否可以在另一个JS文件中执行此操作,我可以将变量和URL之间的映射作为键值对?或者在JSON中这样做会更好吗?

  2. 如何从一个JS中获取值并在另一个JS中访问?我希望有一个变量xyz代替" /content/abc.html"。

  3. 代码 .when(' /',{                 templateUrl:' /content/abc.html ',                 controller:' tempController'             })

    要 .when(' /',{                 templateUrl: abc ,                 controller:' tempController'             })

    任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:1)

TemplateUrl采用字符串或返回字符串的函数,只需使用匿名函数,就像这样 - >

function() {
    return myPartialObject.abc;
}

关于您的第一个问题,为什么不为myPartialObject创建一个包含所有模板的工厂 - >字符串映射,将其注入routeprovider并为您的模板URL访问它?它可以在您希望的单独文件中,并且角度处理所有注射等。

编辑 - 这是一个示例文件检索功能

var retrieveFile = function (url) {
    var promise = $http({
        method: 'GET',
        url: url,
        headers: {Accept: '*/*', 'Content-Type': 'application/x-www-form-urlencoded'}
    });
    return promise;
};

那么你要附加一个.then来承诺并用数据做你想做的事情(在你的情况下设置你的服务返回到json映射的对象,angular有一些非常好的json函数来帮助解决这个问题) )

retrieveFile("/myjson.json").then(function (data) {
    SetUpMyVariables(data);
}