我正在处理Angular Routing并且在我的javascript文件中直接硬编码了URL。但是,我需要将这些URL保存在一个单独的文件中,我应该在哪里保留它?鉴于我正在使用CQ Adove 5环境,我无法用XML或java中的变量映射它们。
是否可以在另一个JS文件中执行此操作,我可以将变量和URL之间的映射作为键值对?或者在JSON中这样做会更好吗?
如何从一个JS中获取值并在另一个JS中访问?我希望有一个变量xyz代替" /content/abc.html"。
代码 .when(' /',{ templateUrl:' /content/abc.html ', controller:' tempController' })
要 .when(' /',{ templateUrl: abc , controller:' tempController' })
任何帮助都会非常感激。
答案 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);
}