Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在创建Angular 1应用程序时,我应该记住哪两个方面?_Javascript_Angularjs_Angular_Typescript - Fatal编程技术网

Javascript 在创建Angular 1应用程序时,我应该记住哪两个方面?

Javascript 在创建Angular 1应用程序时,我应该记住哪两个方面?,javascript,angularjs,angular,typescript,Javascript,Angularjs,Angular,Typescript,我很快将不得不在Angular 1.x中重写一个相对较大/复杂的web应用程序。我还得学Angular 1.x。我知道Angular 2.x将与1.x完全不兼容,但我能做些什么来准备在Angular 2.x中重写吗 例如: 代码结构:我可以将必须扔掉的代码与可能可重用的代码分开吗?当前的web应用程序没有RESTAPI,因此我假设我将编写的RESTAPI至少可以在2.x版本中重用。但我担心这里的客户端代码 语言选择:我很可能会被要求使用纯JS(浏览器直接使用的版本),但使用Typescript

我很快将不得不在Angular 1.x中重写一个相对较大/复杂的web应用程序。我还得学Angular 1.x。我知道Angular 2.x将与1.x完全不兼容,但我能做些什么来准备在Angular 2.x中重写吗

例如:

  • 代码结构:我可以将必须扔掉的代码与可能可重用的代码分开吗?当前的web应用程序没有RESTAPI,因此我假设我将编写的RESTAPI至少可以在2.x版本中重用。但我担心这里的客户端代码

  • 语言选择:我很可能会被要求使用纯JS(浏览器直接使用的版本),但使用Typescript来编写Angular 1.x应用程序是否明智,因为Angular 2.x本身就是用它编写的

  • 还有别的吗


没有理由在Typescript中编写Angular 2.x,除非您喜欢它,或者希望对代码有所贡献,或者如果某些东西不起作用,请仔细阅读Angular 2.x代码以更好地理解它。Typescript并没有让JS更快,或者类似的东西,它只是提供了静态类型,用于帮助开发工具,比如您使用的IDE。想想VisualStudio

我建议您开始使用ES6,它引入了Angular 2使用的类(语法糖,js仍然是js),通过使用transpiler将ES6代码转换为ES5,我估计会有越来越多的人使用它(让Crockford和其他人感到恐怖)

不要使用诸如transclude、compile/pre-link等复杂的指令,保持简单,因为Angular 2.x正在减少发明新方法来迷惑程序员的想法。它们并不完全相同,但Angular 2.x将基于组件,在使用模板/视图的方式上类似于指令

熟悉ES6导入/导出

如果不使用$scope,它将以当前形式删除


我写了一篇更详细的博客文章,实际上,

我建议将指令与基于“Controllera”的控制器一起使用。这使您接近Angular 2.0组件样式。事实上,这很相似。 以下是我的意思的一个例子:


检查官方升级项目ng upgrade,看看有没有可能。这篇博文来自项目负责人,解释了升级路径——写得很好的博客TGH,简明扼要,恰到好处:)