它的事实,不总是我们必须与最后的版本,或最新的语言的市场,但在这种情况下,应用程序仍然很小,所以我可以改变与出问题。
>你在Typescript中写你的角码,它转换成
Javascript在浏览器中。
在一个基本结构中,你将有一个app / ts文件夹,其中你将做你最大的工作和一个app / js,它被告诉编译通过一个tsconfig.json文件,将位于项目的根。你会在app / js文件夹中找到一个扩展名为.js.map的文件。他们将“.ts”文件“映射”到您的浏览器进行调试,因为您的浏览器无法读取原生的打字稿。
如果你想我必须学习一门全新的语言吗?…是的,你做,但不要觉得这太吓人,这应该使你的开发更容易,如我在#2中看到的,我觉得我有一个很好的把握,只是几个小时玩它。
>你绑定到你的HTML,就像你在一个Angular 1指令。所以像$ scope和$ rootScope这样的变量已被弃用。
这个你可能已经暗示为#1状态Angular 2在打字稿。 Angular 2仍然是一个MV *,但你会使用’组件’作为一种方式绑定代码到您的模板,例如采取以下
import {component} from {angular2/core}; @component({ selector:'my-app',template: '<h1> Hello World! </h1>' }) export class AppComponent {}
这里想到import语句作为v1控制器中的依赖注入。您可以使用import导入您的包,其中import {component}表示您将要创建一个要绑定到HTML的组件。
注意@component装饰器你有一个选择器和模板。这里把选择器看作你的$ scope,像你使用v1指令一样,选择器的名字是你用来绑定你的HTML的。
其中< my-app>是您将使用的自定义代码的名称,将作为模板中声明的内容的占位符,即< h1>你好,世界! < / h1> ;.而这将喜欢下面的v1。 HTML
<h1>{{hello}}</h1>
js
$scope.hello = "Hello World!"
<my-app> Loading... </my-app>
则在模板加载时(在我们的示例中为< h1> Hello World!< / h1>)在视图中显示“正在加载…”
请注意,模板中声明的是您在选择器代码中的HTML中使用的路径或原始HTML。
而更全面的Angular 1的实现看起来更像
HTML
<h1 ng-controller="myCtrl">{{hello}}</h1>
在v1这看起来像
js
angular.module('controller',[]) .controller('myCtrl',function( $scope) { $scope.hello = "Hello World!" })
这是我真的很喜欢v2,因为我发现指令有我在v1中的沉浸的学习曲线,即使我有他们想出我经常有css渲染不是我的意图。我发现这更简单。
V2允许您的应用程序更容易的可扩展性,你会注意到,你可以分割你的应用程序比你在v1中更容易。我喜欢这种方法,因为你可以有一个文件中的所有工作部分,而不是有多个角度在v1。
将您的项目从v1转换到v2怎么样?
从我从开发团队听到的,如果你想更新你的v1项目到v2,你只是将经历和删除过时的blob,并用选择器替换$ scope。我认为这部影片很有帮助。这是与一些离线团队,与角队的工作肩并肩,因为v2有更强的重点移动https://youtu.be/OZg4M_nWuIk希望这有助于。
更新:我更新了通过添加示例作为Angular 2的官方实现已经浮出水面。