我的Ionic v1应用程序需要升级到v3 ...甚至v4。一些问题:
在我的v1应用程序中,我有一个JS根文件夹,其中包含app.js,controllers.js,services.js,所有页面和模板均来自该文件夹。我知道在离子 v2-v4,每个页面都有自己的文件夹和自己的文件夹 controller,service,template.html文件-我将需要分解所有内容并将其移至新结构中。但是,在我的v1应用中 对于我加载的标准JS函数有一个“全局” index.js文件 通过主
index.html
文件进入我的应用-该文件中的功能在所有 我现有应用程序的页面/控制器/服务。在新结构中, 我将把这个全局的“ index.js”文件放在哪里?或者,我应该怎么办? 将其转换为所有功能都保持全局状态?是否存在某种矩阵,可以显示v1,v2,v3和v4的
features
-除了性能,每个版本的收益超过 以前的版本(现在可以执行的操作,而现在已经无法执行 先前)?是否有一个JS到TS迁移工具可以帮助迁移所有现有的JS?
最后,在直接转到v3与直接转到v4之间是否有任何论点?
总是存在“如果没有破裂就不要修复”。但是我发现维护我的v1应用程序越来越困难,越来越难以添加新功能,不再支持越来越多的插件,总的来说,我认为迁移现在已成为一项重要的性能提升。我只是讨厌必须经历这个过程。
答案 0 :(得分:0)
将全局JS标签放在src/index.html
和build/polyfills.js
(它们在body标签中)之前的build/main.js
标头标签中。
示例:我创建了一个带有src/assets/test.js
的文件var testvar
,并导入了src/index.html
,然后在src/app/app.component.ts
中声明了声明var testvar;
。
test.js
var testvar = "Hello from external js";
index.html
...
<link rel="icon" type="image/x-icon" href="assets/icon/favicon.ico">
<link rel="manifest" href="manifest.json">
<meta name="theme-color" content="#4e8ef7">
<!-- cordova.js required for cordova apps -->
<script src="cordova.js"></script>
<script src="assets/js/test.js"></script> //here, not in body
...
app.componet.ts
...
declare var testvar;
@Component({
templateUrl: 'app.html'
})
export class MyApp {
@ViewChild(Nav) nav: Nav;
constructor(private statusbar : StatusBar, splashScreen: SplashScreen) {
alert(testvar);
...