使用NG2之前需要安装node以及Npm环境,并到node下下载ng2所需要得文件,具体配置请到https://angular.cn/docs/ts/latest/quickstart.html按照提示操作,安装完毕并创建后各种目录后,正式开始编写第一个HelloWordl;

ng2是基于typescript,文件以ts结尾代表typesript文件,启动Npm start后,node会监视目录下的文件变得将ts编译为js文件

首先创建根模块文件app/app.module.ts, 每个Angular2的应用都至少有一个模块即跟模块。

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';

@NgModule({
imports: [ BrowserModule ]
})
export class AppModule { }

//import2行表示从目录中引入我们所需得文件,import是ES6关键字,经过编译后会被转化为ES5的require,形式如下:

//var core = require('@angular/core');

//var bsmodule = require('@angular/platform-browser');

//@NgModule:意思为告诉Angular如何去编译和运行代码。模块内部可以包含组件、指令、管道,并且可以将它们的访问权限声明为公有,以使外部模块的组件可以访问和使用到它们;

NgModule的主要属性如下:北京联盟 http://www.010lm.com/

  • declarations:模块内部Components/Directives/Pipes的列表,声明一下这个模块内部成员
  • providers:指定应用程序的根级别需要使用的service。(Angular2中没有模块级别的service,所有在NgModule中声明的Provider都是注册在根级别的Dependency Injector中)
  • imports:导入其他module,其它module暴露的出的Components、Directives、Pipes等可以在本module的组件中被使用。比如导入CommonModule后就可以使用NgIf、NgFor等指令。
  • exports:用来控制将哪些内部成员暴露给外部使用。导入一个module并不意味着会自动导入这个module内部导入的module所暴露出的公共成员。除非导入的这个module把它内部导入的module写到exports中。
  • bootstrap:通常是app启动的根组件,一般只有一个component。bootstrap中的组件会自动被放入到entryComponents中。
  • entryCompoenents: 不会再模板中被引用到的组件。这个属性一般情况下只有ng自己使用,一般是bootstrap组件或者路由组件,ng会自动把bootstrap、路由组件放入其中。 除非不通过路由动态将component加入到dom中,否则不会用到这个属性

项目是运行在浏览器中的 Web 应用,所以根模块需要从 @angular/platform-browser 中导入 BrowserModule 并添加到 imports 数组中;

//export 也是es6的关键字,表示导出,以使得其他组件或者模块可以导入(import);

接着创建根组件app/app.component.ts

import { Component } from '@angular/core';

@Component({
selector: 'my-app',
template: '<h1>hello wordl</h1>'
})

export class AppComponent { }

//@Component表示将一份数据关联到导出的AppComponent,虽然此处AppComponent导出内容为空,但实际上@Component中的内容由于与之关联,因此里面的selector: 'my-app',
template: '<h1>My First Angular 2 App</h1>'实际上也一起导出,可供外部使用了;

//selector: 'my-app'  指my-app标签,即<my-app></my-app>;

select还可以使用属性以及类,如selector:".example"或者selector:"[ example ]",代表类名为或者属性为example的标签;

//template:要渲染的模板,如<h1>12345</h1>则表示将上面对应的seletor的innerhtml渲染为<h1>12345</h1>,

temlpate为联写法,还可以写为外部引入写法:templateUrl:"../index.html", 这样写需要先定义好一个html文件,其内容为<h1>12345</h1>,并引入;

组件写好后,需要在根模块下将写好的组件引入,在app/app.module.ts下import { AppComponent } from './app.component';
并修改:
@NgModule({imports: [ BrowserModule ]

            ,declarations: [ AppComponent ],

             bootstrap: [ AppComponent ]

            }

          )

最后添加新文件main.ts

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
const platform = platformBrowserDynamic();
platform.bootstrapModule(AppModule);

至此就可以启动应用了,在npm下输入npm start等待几秒即可

angular2.0学习日记1的更多相关文章

  1. 记录Angular2.0学习遇到的问题

    最近开始学习Angular2.0,准备持续记录下踩过得坑 1如何读取本地json文件: 需要通过http请求读取本地json文件,数据文件要放在assets文件夹下面 Service中的代码如下:   ...

  2. angular2.0学习笔记4.npm常用指令记录及angular语法

    以下命令,都需要在命令行窗口中,先切入到项目文件夹目录,再执行 1.npm start 这个命令会在“监听”模式下运行TypeScript编译器,当代码变化时,它会自动重新编译. 同时,该命令还会在浏 ...

  3. angular2.0学习笔记1.开发环境搭建 (node.js和npm的安装)

    开发环境, 1.安装Node.js®和npm, node 6.9.x 和 npm 3.x.x 以上的版本. 更老的版本可能会出现错误,更新的版本则没问题. 控制台窗口中运行命令 node -v 和 n ...

  4. RHL 6.0学习日记, 先记下来,以后整理。

    今天又遇到哪些问题呢? 1.配置网络的问题,我把网络配置文件胡乱改了,然后就上不了网了 因为一直都没怎么用到网络,网线都不怎么连接的,今天只是突然想ping一下,于是就Ping 了一下,一开始ping ...

  5. angular2.0学习笔记5.关于组件

    1.组件文件应在/src/app文件夹下 2.组件文件命名应遵循小写中线形式,每个单词之间用中线分隔,并且以.component.ts结尾. 如:HeroDetailComponent类应该放在her ...

  6. angular2.0学习笔记7.echarts 地图(type:'map')slice undifined 出错问题

    在 项目\node_modules\echarts\lib\chart\map.js文件头部 ... ... require("../coord/geo/geoCreator"); ...

  7. angular2.0学习笔记6.编程风格指南

    1.组件的类名应该是大驼峰形式,并且以Component结尾. 因此英雄详情组件的类名是HeroDetailComponent. 组件的文件名应该是小写中线形式,每个单词之间用中线分隔,并且以.com ...

  8. angular2.0学习笔记3.了解angular2.0项目结构

    1.我们应用的代码都位于src文件中,包括所有的组件.模板.样式.图片以及我们的应用所需的任何东西都在这个文件来里. 2.src这个文件夹之外的文件都是为构建应用提供支持用的. src文件夹及用途说明 ...

  9. angular2.0学习笔记2.创建hello world项目

    1.打开终端命令行窗口 2.切换到指定目录 E:\cd myobject 3.创建新项目 ng new angular2-helloworld 4.创建成功后,在angular2-helloworld ...

随机推荐

  1. Centos为mysql开启binlog

    1.查询mysql配置文件所在位置 2.编辑配置文件/etc/my.cnf 在文件尾部添加: log-bin=/var/lib/mysql/mysql-bin server-id=123454  (5 ...

  2. 8条规则图解JavaScript原型链继承原理

    原形链是JS难点之一,而且很多书都喜欢用一大堆的文字解释给你听什么什么是原型链,就算有图配上讲解,有的图也是点到为止,很难让人不产生疑惑. 我们先来看一段程序,友情提示sublimeText看更爽: ...

  3. HDU4910 Problem about GCD

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...

  4. vim与shell切换

    扩展一些vim的知识. vim与shell切换 :shell 可以在不关闭vi的情况下切换到shell命令行. :exit 从shell回到vim. 文件浏览 :Ex 开启目录浏览器,可以浏览当前目录 ...

  5. 我的Ansible学习笔记

    Ansible常见错误 http://afewbug.com/article/26官方文档 http://docs.ansible.com/ansible/安装配置 http://sofar.blog ...

  6. 关于IIS权限问题(Selenium WebDriver调用出错记录)

    本地VS调试过程中用Selenium WebDriver打开FF浏览器可以正常工作,项目部署至IIS后请求调用浏览器一直提示超时,异常如下: 因为本地调试可以成功,首先排除组件版本问题和浏览器兼容问题 ...

  7. 【转】R语言知识体系概览

    摘要:R语言的知识体系并非语法这么简单,如果都不了R的全貌,何谈学好R语言呢.本文将展示介绍R语言的知识体系结构,并告诉读者如何才能高效地学习R语言. 最近遇到很多的程序员都想转行到数据分析,于是就开 ...

  8. [spring]xml配置文件中bean属性的两种写法(p:configLocation <=> <property name="configLocation"/>)

    1.当作bean节点的属性:p:configLocation: <!-- mybatis文件配置,扫描所有mapper文件 --> <bean id="sqlSession ...

  9. 关于BFS和dijkstra(2019.04.20)

    我的BFS板子 struct node{/*略*/};//表示一个状态 std::map<node,bool>vis;//判断每个状态是否已访问过 std::queue<node&g ...

  10. AsyncCallback 异步回调委托

    js是单线程语言,单线程就意味着,所有任务需要排队,前一个任务结束,才会执行后一个任务.如果前一个任务耗时很长,后一个任务就不得不一直等着. 如果排队是因为计算量大,CPU忙不过来,倒也算了,但是很多 ...