Angular 2 Quickstart
写一个Angular 2的应用最基本的步骤概括为三步:写root组件,启动它(Boostrap),写index.html。
一些关于命名空间的基本知识
把所有代码放入一个立即调用函数中,通过传入一个空对象app,实现对命名空间的隔离,避免了污染全局命名空间。
- (function(app) {
- app.AppComponent = ....
- })(window.app || (window.app = {}));
将要导出的内容添加到app命名空间内,比如我们通过app.AppComponent=...,来将AppComponent导出,其他文件可以通过app对象来使用。
组件 app.component.js
- (function (app) {
- app.AppComponent =
- ng.core.Component({
- selector: "#my-app",
- template: "<h1>My First Angular 2 App</h1>"
- })
- .Class({
- constructor: function() {}
- });
- })(window.app || (window.app = {}));
一个组件控制一个视图,严格意义上组件就是class。
它使用NG的core命名空间中的Component方法和Class方法定义。
Component方法:接收一个具有两个属性的对象作为配置参数,selector是选择器(同jQuery选择器),template是渲染视图的内容(html)。
Class方法:接收一个对象,用于实现component,通过给它属性和方法来绑定到视图,定义它的行为(constructor属性是一个函数,用于定义这些行为?)
启动 boot.js
- (function (app) {
- document.addEventListener('DOMContentLoaded',function() {
- // 页面文档完全加载并解析完毕之后,调用bootstrap方法,传入根组件AppComponent来启动它
- ng.platform.browser.bootstrap(app.AppComponent);
- });
- })(window.app || (window.app = {}));
页面文档完全加载并解析完毕之后,会触发DOMContentLoaded
事件,HTML文档不会等待样式文件、图片文件、子框架页面的加载(load事件可以用来检测HTML页面是否完全加载完毕(fully-loaded))。
index.html
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Angular 2</title>
- <!-- IE required polyfill -->
- <script src="node_modules/es6-shim/es6-shim.min.js"></script>
- <!-- Angular所需的lib -->
- <script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
- <script src="node_modules/rxjs/bundles/Rx.umd.js"></script>
- <script src="node_modules/angular2/bundles/angular2-all.umd.js"></script>
- <!-- 自己编写的模块 -->
- <script src='app/app.component.js'></script>
- <script src='app/boot.js'></script>
- </head>
- <body>
- <!-- Angular需要通过selector找到的视图 -->
- <div id="my-app">Loading...</div>
- </body>
- </html>
需要注意的是boot.js要放在app.component.js之后,当Angular调用boot.js的启动程序,它读取AppComponent组件,找到“my-app”选择器,定位到一个id为“my-app”的元素,将template的内容加载到元素里面。
使用npm start来启动程序,在package.json的配置中实际上将npm start命令映射到了启动lite-server服务,它可以监控文件改动,实现自动刷新。
- // package.json
- {
- "name": "angular2-quickstart",
- "version": "1.0.0",
- "scripts": {
- "start": "npm run lite",
- "lite": "lite-server"
- },
- "license": "ISC",
- "dependencies": {
- "angular2": "2.0.0-beta.0",
- "systemjs": "0.19.6",
- "es6-promise": "^3.0.2",
- "es6-shim": "^0.33.3",
- "reflect-metadata": "0.1.2",
- "rxjs": "5.0.0-beta.0",
- "zone.js": "0.5.10"
- },
- "devDependencies": {
- "lite-server": "^1.3.1"
- }
- }
Angular 2 Quickstart的更多相关文章
- Angular 2 - 5 分钟快速入门
原文地址: https://angular.io/docs/ts/latest/quickstart.html 让我们从 0 开始创建一个简单的 Angular 2 应用. 下载任何版本的 angul ...
- 翻译:Angular 2 - TypeScript 5 分钟快速入门
原文地址:https://angular.io/docs/ts/latest/quickstart.html Angular 2 终于发布了 beta 版.这意味着正式版应该很快就要发布了. 让我们使 ...
- [Angular 2] 9. Replace ng-modle with #ref & events
Let's say you want to write a simple data bing app. when you type in a text box, somewhere in the ap ...
- [Angular 2] Controlling how Styles are Shared with View Encapsulation
Style and View Encapsulation is best understood by seeing how each option (Emulated, Native, and Non ...
- Angular学习笔记(2)——TODO小应用
Angular学习笔记(2)--TODO小应用 1. 写在前面 之前我们跑了Angular的Hello World,你是不是对它有点感觉了呢?这一篇将结合一个TODO程序来继续学习Angular的用法 ...
- TypeScript 5 Angular 2
TypeScript 5 分钟快速入门 翻译:Angular 2 - TypeScript 5 分钟快速入门 原文地址:https://angular.io/docs/ts/latest/quicks ...
- Angular2 Hello World 之 2.0.0-beta.14
公司现在采用angualrjs开发一些web应用,采用的是angular1,现在angular2已经差不多了,听说最近rc6已经出来了……其实感觉好慢啊!之前也做过一些anglar2的例子,但是没有记 ...
- 如何在ASP.NET 5上搭建基于TypeScript的Angular2项目
一.前言 就在上月,公司的一个同事建议当前的前端全面改用AngularJs进行开发,而我们采用的就是ASP.NET 5项目,原本我的计划是采用TypeScript直接进行Angular2开发.所以借用 ...
- angularjs 2.0 简单入门1
一:首先要写json文件,并下载所有的包 1,在任意目录下新建文件夹 命名为angular2Dome,也可以使用命令 mkdir angular2Dome 回车. 2,在angular2Dome文件 ...
随机推荐
- 查看软、硬raid信息的方法
软件raid:只能通过Linux系统本身来查看cat /proc/mdstat可以看到raid级别,状态等信息. 硬件raid:最佳的办法是通过已安装的raid厂商的管理工具来查看,有cmdline, ...
- C#winform导出数据到Excel的类
/// <summary> /// 构造函数 /// </summary> public ExportData() { } /// <summary> /// 保存 ...
- 一些CSS"bug"
1.img三像像素问题 解决办法:img{display:block;} or img{vertical-align:middle;} 问题原因:img是行内元素,默认的垂直对齐方式 baseline ...
- [译]MongoDb生产环境注意事项
译注: 本文是翻译MongoDB Manuel中的MongoDB Production Notes一节内容.这节内容重点关注生产环境中影响性能和可靠性的各种注意事项,值得正在部署MongoDB的工作者 ...
- php下intval()和(int)转换有哪些区别
想知道使用intval()和(int)转换有什么区别? 或者说两者有什么不同,包括功能.定义方面的.或者和使用频率.效率等. 复制代码代码如下: <?php echo "<br ...
- 【自己动手】sublime text插件开发
今天是五四青年节,在此先祝大家节日快乐!!! --------------------------------------------华丽的分界线--------------------------- ...
- Android sqlite3工具的使用
sqlite3 <数据库名称> 进入数据库操作模式 eg: sqlite3 contacts.db .tables 查看所有的表 eg: .table .schema 查看查看库中所有表的 ...
- php中的日期
1.在PHP中获取日期和时间 time()返回当前时间的 Unix 时间戳. getDate()返回日期/时间信息. gettimeofday()返回当前时间信息.date_sunrise()返回给定 ...
- Learning Scrapy笔记(零) - 前言
我已经使用了scrapy有半年之多,但是却一直都感觉没有入门,网上关于scrapy的文章简直少得可怜,而官网上的文档(http://doc.scrapy.org/en/1.0/index.html)对 ...
- Unity Scripting Tutorials 要点记录
(搬运自我在SegmentFault的博客) 这几天通过Unity官网的Unity Scripting Tutorials的视频学习Unity脚本,观看的过程中做了记录.现在,整理了一下笔记,供自己以 ...