Angular2 入门详解

  AngularJS 2 快速入门

npm是什么?   npm其实是Node.js Package Manager的简称,是Node.js包管理工具(package manager)

安装Node.js之后配置npm:

配置npm的全局模块的存放路径以及cache的路径:

查看全局模块路径:npm config get prefix

查看全局cache路径:npm config get cache

在NodeJs下建立"node_global"及"node_cache"两个文件夹:

npm config set prefix "D:\Program Files\nodejs\node_global"

npm config set cache "D:\Program Files\nodejs\node_cache"

    安装相关环境:

设置淘宝镜像:

npm config set registry https://registry.npm.taobao.org -g

安装淘宝的npm镜像,安装之后可以使用cnpm替换npm执行命令:

npm install cnpm --registry=https://registry.npm.taobao.org -g

更新npm:    npm install [email protected] -g

键入命令: npm install express 回车等待安装express

键入命令: npm install jade 回车等待安装jade

键入命令: npm install mysql回车等待安装mysql

安装cli:    npm install -g angular-cli

更新cli先卸载再安装:  npm uninstall -g angular-cli    npm cache clean

npm install -g [email protected]

查看已安装全局包: npm list -g --depth 0

  第一个Angular 组件

组件是Angular中最基本的一个概念。 一个组件包含一个视图-我们用来展示信息或者完成用户交互的页面。

技术上来讲, 一个组件就是一个控制模板试图的类。

  在Angular2中有三种类型的指令(Directive)

1. 组件 — 拥有模板的指令。

2. 结构型指令 - 通过添加和移除DOM元素来改变DOM结构的指令。例如:NgFor, NgIf

3. 属性型指令 - 改变元素显示和行为的指令。例如:NgStyle

  指令的输入(Input)属性

如果属性出现在了模板表达式等号(=)的右侧,它就是一个源。如果它出现在了方括号([ ])中,并且出现在等号(=)的左侧,它就是一个目标。

  组件详解:

exports使一个文件转变成一个模块。 文件名(不包含扩展名)通常就是这个模块的名称。

import:当我们需要引入其他模块的时候,直接import进来就可以使用。

Componet:方法来定义一个组件的注解,这个方法需要引入 angular2/core 才可以使用

import {Component} from ‘angular2/core‘;

@Component:告诉Angular这个类是一个组件。里面的参数有两个selector 和 template.

selector:   创建的组件的名字,就像HTML标签的名字一样

template:控制这个组件的视图,告诉Angular怎么去渲染这个视图。

templateUrl: HTML模板,使用相对路径,./表示这个组件文件所在的当前目录,../表示上一级目录

styleUrls:  HTML模板使用的样式表,可以有多个

样例:

@Component({

selector: ‘my-app‘,

template: ‘<h1>My First Angular 2 App</h1>‘,

templateUrl: ‘./app.component.html‘,

styleUrls: [‘app/app.component.css‘],

})

在 html 中,用 <a> 标签指定路由的写法为:

// 主动路由跳转:路由名称,路由参数

<a href="#/user/88">Tom</a>

  模块详解:module

在顶部使用import语句,导入模块或者组件需要使用的外部模块。在模块中需要使用自己创建的组件或者其他服务、指令,也需要import。import语句之后,使用@NgModule()语句描述本模块的元数据。

declarations:声明属于本模块的组件,每个组件必须在且仅在一个模块中声明。

imports:引入本模块中用到的模块,该模块是处于import语句引入的模块中。

providers:声明模块中使用的服务的提供者。

bootstrap:根模块中的引导组件,应用启动过程中,会创建这个数组中的组件并插入到HTML中,一般只有一个引导组件。

最后,使用export语句,创建模块的类并暴露出去。模块、组件只有暴露出去,其他的模块才能引用。

  事件响应详解:

添加事件格式如下:(click)="onClickMe()"

<button (click)="onClickMe()" [ngClass]=”getMethod”>点击我!</button>

  Angular用法:

1.数据绑定:ng-bind=""

2.Ng-click 点击事件   Ng-mouseover 鼠标移入事件

3.Ng-show:显示元素      Ng-hide隐藏元素

4.双向绑定:{{}}        {{msg}}

5.页面元素显示与隐藏:  ng-show    ng-hide

6.响应事件:ng-click  ng-change

  Appendices(附录):

Appendix: Browser ES6 support

在index.html 文件的其他脚本之前加载垫片库

<script src="node_modules/es6-shim/es6-shim.js"></script>

Appendix: package.json      (注:JSON文件不支持注释,引用时请清除注释)

在npm的package.json文件中,指定我们需要使用的包,包列在dependencies和 devDependencies中。

 1 {
 2
 3   "dependencies": {
 4
 5     "angular2": "2.0.0-beta.0",
 6
 7     "systemjs": "0.19.6",
 8
 9     "es6-promise": "^3.0.2",
10
11     "es6-shim": "^0.33.3",
12
13     "reflect-metadata": "0.1.2",
14
15     "rxjs": "5.0.0-beta.0",
16
17     "zone.js": "0.5.10"
18
19   },
20
21   "devDependencies": {
22
23     "concurrently": "^1.0.0",
24
25     "lite-server": "^1.3.1",
26
27     "typescript": "^1.7.3"
28
29   }
30
31 }

在package.json中,包含可选的scripts配置节,我们可以定义一些有用的命令来执行开发和构建任务。建议的package.json中包含了一些常用脚本命令。

{

"scripts": {

"tsc": "tsc",

"tsc:w": "tsc -w",

"lite": "lite-server",

"start": "concurrent \"npm run tsc:w\" \"npm run lite\" "

}

}

Appendix: TypeScript configuration

添加一个TypgeScript配置文件tscofnig.json到我们的项目,在编译生成JavaScript的时候来指导编译器。

当noImplicitAny标志为false的时候,如果编译器不能根据变量的使用来推断变量的类型,直接默认为any 类型。这就是为什么称为"implicitly any"。

当noImplicitAny 标志为true的时候,TypeScript 编译器不能推断类型,它仍然生成JavaScript 文件,但是报告一个错误。

可以使用下面的标志来抑制它们:  "suppressImplicitAnyIndexErrors":true

Appendix: SystemJS Configuration

SystemJS 加载应用和库模块,在index.html添加SystemJS配置

System.import 调用告诉SystemJS 导入boot文件boot是我们告诉Angular启动应用的地方我们同时也捕获和记录启动中的错误信息到控制台中。其它的模块或者由 Angular 自身或者由前面的模块加载。

Appendix: boot.ts

从 angular2/platform/browser 中导入 bootstrap 函数,bootstrap 用于引导Module启动应用。

Angular2教程资料:

    http://angular2.axuer.com/

    https://www.angular.cn/

W3cSchool:    https://www.w3cschool.cn/angular2/

菜鸟教程:     http://www.runoob.com/angularjs2/angularjs2-tutorial.html

时间: 2024-08-08 13:49:54

Angular2 入门详解的相关文章

【转】Asp.Net MVC3 简单入门详解过滤器Filter

原文地址:http://www.cnblogs.com/boruipower/archive/2012/11/18/2775924.html 前言 在开发大项目的时候总会有相关的AOP面向切面编程的组件,而MVC(特指:Asp.Net MVC,以下皆同)项目中不想让MVC开发人员去关心和写类似身份验证,日志,异常,行为截取等这部分重复的代码,那我们可以通过AOP截取实现,而在MVC项目中我们就可以直接使用它提供的Filter的特性帮我们解决,不用自己实现复杂的AOP了. 在Asp.net Mvc

webpack入门详解

webpack入门详解(基于webpack 3.5.4  2017-8-22) webpack常用命令: webpack --display-error-details    //执行打包 webpack -w               // 提供watch方法:实时进行打包更新 webpack -p           // 对打包后的文件进行压缩 webpack -d            // 提供source map,方便调式代码 webpack -dev-server --open 

Quartz 入门详解

Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表.Jobs可以做成标准的Java组件或 EJBs.官方网站:http://www.opensymphony.com/quartz 相关Jar:   quartz-all-1.6.0.jar   jta.jar   commons-logging-1.1.jar

Linq之旅:Linq入门详解(Linq to Objects)

示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集成查询).通过LINQ,我们可以使用相同API操作不同的数据源.接下来就让我们看看LINQ是什么以及如何使用? 再此之前,需要先了解的相关技术 1. 隐式类型.匿名类型.对象初始化器 1) 隐式类型,使用var关键字创建,C#编译器会根据用于初始化局部变量的初始值推断出变量的数据类型.(不过我个人认

SQL注入攻防入门详解(2)

SQL注入攻防入门详解 =============安全性篇目录============== 毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但是对安全方面的知识依旧薄弱,事实上是没机会接触相关开发……必须的各种借口.这几天把sql注入的相关知识整理了下,希望大家多多提意见. (对于sql注入的攻防,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避免后知后觉的犯下大错,专门查看大量前辈们的心得,这方面的资料颇多,将其精简出自己觉得重要的,就成了该文

[转]SQL注入攻防入门详解

原文地址:http://www.cnblogs.com/heyuquan/archive/2012/10/31/2748577.html =============安全性篇目录============== 毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但是对安全方面的知识依旧薄弱,事实上是没机会接触相关开发……必须的各种借口.这几天把sql注入的相关知识整理了下,希望大家多多提意见. (对于sql注入的攻防,我只用过简单拼接字符串的注入及参数化查询,可以说没什么

SQL注入攻防入门详解

原文地址:http://www.cnblogs.com/heyuquan/archive/2012/10/31/2748577.html =============安全性篇目录============== 毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但是对安全方面的知识依旧薄弱,事实上是没机会接触相关开发……必须的各种借口.这几天把sql注入的相关知识整理了下,希望大家多多提意见. (对于sql注入的攻防,我只用过简单拼接字符串的注入及参数化查询,可以说没什么

【转载】SQL注入攻防入门详解

滴答…滴答…的雨,欢迎大家光临我的博客. 学习是快乐的,教育是枯燥的. 博客园  首页  博问  闪存    联系  订阅 管理 随笔-58 评论-2028 文章-5  trackbacks-0 站长统计|  今日IP[353] | 今日PV[848] | 昨日IP[922] |  昨日PV[2188] |当前在线[10] SQL注入攻防入门详解 =============安全性篇目录============== 毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但

JAVA定时任务调度之Timer入门详解(二)

在上篇的JAVA定时任务调度之Timer入门详解(一)文章中,主要介绍了下Timer,接下来我们一起来看看Timer的一些常用方法. 1.schedule()的4种用法. 第一种:schedule(TimerTask task, Date time); task:安排的任务,time:具体执行时间.这个函数表达的意义是:在时间等于或超过time的时候执行且执行一次task.测试内容如下 MyTimerTask.java的代码跟第一篇一样,MyTimer.java的部分代码截图如下: 运行后,控制