AngularJS vs AngularJS
几个月前,我决定学习英语。当我在做一些改进并使用它创建一些应用程序时,我意识到Angular 2在开发者预览中,所以它发布之前只是时间问题。因为Angular 2与Angular 1不兼容,而且有很多变化,问题是,继续使用Angular 1.x开发还是开始开发Angular 2更好AngularJS vs AngularJS,angularjs,angular,Angularjs,Angular,几个月前,我决定学习英语。当我在做一些改进并使用它创建一些应用程序时,我意识到Angular 2在开发者预览中,所以它发布之前只是时间问题。因为Angular 2与Angular 1不兼容,而且有很多变化,问题是,继续使用Angular 1.x开发还是开始开发Angular 2更好 事实上,我们不必总是使用市场上的最新版本或最新语言,但在这种情况下,应用程序仍然很小,因此我可以毫无问题地进行更改 让我先说一句,我假设你和所有将要阅读本文的人都已经对Angular 1感到满意了(,而不是对较新版本
事实上,我们不必总是使用市场上的最新版本或最新语言,但在这种情况下,应用程序仍然很小,因此我可以毫无问题地进行更改 让我先说一句,我假设你和所有将要阅读本文的人都已经对Angular 1感到满意了(,而不是对较新版本来说只是Angular)。这就是说,让我们来看看Angular 2+中的一些加法和关键区别
cli
ng new[app name]
启动新项目。
您可以通过运行ng serve
在此处了解更多信息:
app/ts
文件夹,您将在其中完成大部分工作,并在app/js
文件夹文件中找到一个扩展名为.js
的app/js
。它们将“.ts”文件“映射”到浏览器进行调试,因为浏览器无法读取本机typescript。
更新:已过测试版。在大多数情况下,项目结构发生了一些变化,如果您使用的是angular cli,那么您将在
src/app/
文件夹。在初学者项目中,您将拥有以下内容
app.component.css
app.component.html
app.component.spec.ts
app.component.ts
app.module.ts
index.ts
app.component.css:您应该针对component.html
app.component.html:视图(在app.component.js中声明的变量)
应用组件规范ts:用于测试应用组件规范ts
app.component.ts:绑定到app.component.html
app.module.ts:这是启动应用程序以及定义所有插件、组件、服务等的地方。这相当于Angular 1中的app.js
index.ts用于定义或导出项目文件
其他信息:专业提示:您可以运行
ng generate[option][name]
生成新的服务、组件、管道等
另外,tsconfig.json
文件很重要,因为它为您的项目定义了TS编译规则
如果你认为我必须学习一门全新的语言?。。。UH在某种程度上,TypeScript是JavaScript的超集。不要被吓倒;它可以让你的发展更容易。在玩了几个小时之后,我感觉自己对它有了很好的理解,三天之后,我就把它都搞定了
$scope
和$rootScope
这样的变量已被弃用。 import { Component } from '@angular/core';
@Component({
selector:'my-app',
template: '<h1> Hello World! </h1>'
})
export class AppComponent {}
其中,
是您将使用的自定义标记的名称,它将作为模板中声明内容的占位符。i、 你好,世界代码>。然而,在v1中,这看起来如下所示:
HTML
<h1>{{hello}}</h1>
<h1 ng-controller="myCtrl">{{hello}}</h1>
您还可以在这些标记之间添加一些内容以生成加载消息,如下所示:
<my-app> Loading... </my-app>
在v1中,这看起来像
JS
$scope.hello = "Hello World!"
angular.module('controller', [])
.controller('myCtrl', function( $scope) {
$scope.hello = "Hello World!"
})
这就是我真正喜欢v2的地方。我发现指令在v1中对我来说是一条陡峭的学习曲线,甚至当我弄明白它们时,我经常使用CSS
呈现,而不是我想要的。我发现这更简单
V2允许更轻松地扩展应用程序,因为您可以比v1更轻松地分解应用程序。我喜欢这种方法,因为您可以将所有工作部件放在一个文件中,而不是放在多个文件中
如何将项目从v1转换为v2?
根据我从开发团队那里听到的消息,如果您想将v1项目更新为v2,您只需检查并删除不推荐的blob,然后将
$scope
s替换为选择器
s即可。我觉得这个视频很有帮助。这是与爱奥尼亚团队的一些人,他们正在与angular团队并肩工作,因为v2更加关注移动设备,希望这会有所帮助
更新:随着Angular 2的正式实现浮出水面,我通过添加示例进行了更新
更新2:这似乎仍然是一个很受欢迎的问题,所以我想我需要一些在开始使用angular 2时发现非常有用的资源
有用资源:
有关ES6的更多信息,我建议查看新波士顿的
要编写Typescript函数并查看它们如何编译为Javascript,请查看
要查看Angular 2中Angular 1等价物的函数分解,请参见无框架是完美的。您可以阅读有关角度1和角度1中的缺陷。但这并不意味着它是坏的。问题是你在解决什么问题。如果您想快速推出一个简单的应用程序,它是轻量级的,数据绑定有限,那么请继续使用Angular 1。Angular 1是6年前为解决快速原型设计而建造的,它做得非常好。即使您的用例很复杂,您仍然可以使用Angular 1,但您应该使用b
angular.module('controller', [])
.controller('myCtrl', function( $scope) {
$scope.hello = "Hello World!"
})