在 Angular2 中使用 PhoneGap,加载模板时出现问题
Using PhoneGap with Angular2, problems loading templates
似乎 systemjs 似乎无法找到模板文件(我的 .html 视图),因为它使用绝对路径加载文件。它希望我的主要应用程序组件 app.html 位于 file://
但事实是,PhoneGap 将应用程序的根目录放在 file://data/data/app-name/root/...
行的很深的位置
systemjs 从 / 加载的原因可能是因为我在 index.html
中添加了 <base href="/">
。这样做是为了让路由正常工作。
此处的最佳做法是什么?我所有的组件都使用 templateUrl,我正在认真考虑内联 html - 这真的很烦人...
我正在使用 traceur 作为转译器。
如果有人感兴趣,我分两步解决了这个问题:
首先,在我的 index.html 中,我导入了我的应用程序,在此之前,我初始化了一个全局变量,稍后用作 baseUrl:
if (window.cordova !== undefined) {
baseLoadpath = 'data/data/dk.app_name/files/download/app_dir/';
} else {
baseLoadpath = '/'
}
每当我加载模板时,我都会像这样预先添加这个 baseLoadPath:
@View({
templateUrl : baseLoadpath + 'app.html'
})
这会处理文件路径。由于其他错误,我仍然无法在 PhoneGap 中启动和 运行...
似乎 systemjs 似乎无法找到模板文件(我的 .html 视图),因为它使用绝对路径加载文件。它希望我的主要应用程序组件 app.html 位于 file://
但事实是,PhoneGap 将应用程序的根目录放在 file://data/data/app-name/root/...
行的很深的位置
systemjs 从 / 加载的原因可能是因为我在 index.html
中添加了 <base href="/">
。这样做是为了让路由正常工作。
此处的最佳做法是什么?我所有的组件都使用 templateUrl,我正在认真考虑内联 html - 这真的很烦人...
我正在使用 traceur 作为转译器。
如果有人感兴趣,我分两步解决了这个问题:
首先,在我的 index.html 中,我导入了我的应用程序,在此之前,我初始化了一个全局变量,稍后用作 baseUrl:
if (window.cordova !== undefined) {
baseLoadpath = 'data/data/dk.app_name/files/download/app_dir/';
} else {
baseLoadpath = '/'
}
每当我加载模板时,我都会像这样预先添加这个 baseLoadPath:
@View({
templateUrl : baseLoadpath + 'app.html'
})
这会处理文件路径。由于其他错误,我仍然无法在 PhoneGap 中启动和 运行...