Angular 4 入门

第二章

第一节:Angular  程序架构:

component: 组件的嵌套

service: 用来封装可重用的业务逻辑代码

指令: 向HTML元素添加自定义行为

module: 用来实现功能:登录、注册

第二节 搭建Angular 开发环境:

安装 node.js  Angular CLI  Webstorm

Angular CLI :

1.查看 Angular CLI版本  ng -v

2.全局安装: npm install -g @angular/cli

3 生成项目: ng new 项目名

路径:src/app/app.component.ts

src文件:

component.ts: App应用的基础

// 引入组件装饰器:

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

// 输出一个typescript 类:

export class AppComponent { title = 'app works' };  // 其中定义了组件的控制器

// 通过 组件元数据装饰器 Component的元数据 将上述类 注解为一个组件:

@Component ({

selector: 'app-root',  //  即该组件可以通过一个标签来调用

templateUrl: './app.component.html',  // 定义组件的模板

styleUrls: ['./app.component.css']  // 定义组件的样式

})

Component: 组件的概念

必备要素:

1.装饰器(组件元数据装饰器):@Componet()  用来告知框架如何处理typescript类,包含多个属性,这些属性的值叫做元数据,

框架根据这些元数据来渲染组件、执行相应的逻辑。

2.模板:Template  即视图

3.控制器:Controller 控制数据、执行代码

4.数据绑定:让模板和控制器相互作用。

可选元素:

1.输入属性: @inputs)()  接收外部传入的数据  使父组件可以直接将数据传递给子组件

2.提供器: providers  做依赖注入

3.生命周期钩子: Lifecycle Hooks  组件从创建到销毁会产生多个钩子,从而用来触发多个业务逻辑

4.样式表: styles

5.动画: Animations

6. 输出属性  @Outputs  与输入属性相对

路径: src/app/app.module.ts

@NgModule({  // 使用模块装饰器声明一个模块

declarations: [  //声明模块中有什么东西  包括组件、管道、指令

AppComponent

],

imports:[  // 声明该模块依赖的模块  可以使用其他模块的组件、服务等

BrowserModule  // 浏览器模块

FormModule,  // 表单模块

HttpModule    // http 服务模块

],

providers: [],  // 声明模块中提供了什么服务

bootstrap: [AppComponent]  // 声明模块的主组件

})

export class AppModule {}

第三节: 启动Angular过程介绍:

angular-cli.json 文件解读:

"project": {

"name": "angular-study"    // 项目名称

},

"apps": [

{

"root": "src",          // 文件根路径

"outDir": "dist",

"assets": [

"assets",

"favicon.ico"

],

"index": "index.html",    // 所在目录: src/index.html

"main": "main.ts",        // 所在目录: src/main.ts

"polyfills": "polyfills.ts",

"test": "test.ts",

"tsconfig": "tsconfig.app.json",

"testTsconfig": "tsconfig.spec.json",

"prefix": "app",

"styles": [

"styles.css"

],

"scripts": [],

"environmentSource": "environments/environment.ts",

"environments": {

"dev": "environments/environment.ts",

"prod": "environments/environment.prod.ts"

}

}

],

......

main.ts  文件解读:

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

// 核心模块的方法  用来关闭Angular的开发者模式

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';    //告知浏览器用哪个模块启动Angular 项目

import { AppModule } from './app/app.module';    // 导入Angular应用的主模块

import { environment } from './environments/environment';  // 引入环境配置

if (environment.production) {  // 若为开发环境,则启动该方法

enableProdMode();

}

platformBrowserDynamic().bootstrapModule(AppModule)  // 启动应用  这里是整个应用开始的起点

.catch(err => console.log(err));

应用启动过程:

(1)在main.js文件中启动应用,运行AppModule模块

(2)在 app.module.ts文件应用主模块中,加载相应的引入方法、依赖模块,

并找到“主组件”:AppComponent.

(3)在src/index.html文件中找到主组件的css选择器: ,

(4)接着,在主组件AppComponent,即文件:src/app/app.component.ts中找到对应

的模板:app.component.html,用于替换该css选择器,并加载相应的样式。

第四节: 开发准备:

安装  admin-lte  以及相关依赖的工具,生成框架模板。

第五节: 开发项目组件:

(1)angular-cli 生成相应组件: ng g component header

在app文件夹下生成header文件夹并生成4个文件:

src/app/header/header.component.css (0 bytes)    // 组件样式

src/app/header/header.component.html (25 bytes)  // 组件HTML模板

src/app/header/header.component.spec.ts (628 bytes)  // 组件检测文件

src/app/header/header.component.ts (329 bytes)    // 组件ts文件

同时更新了文件: app.module.ts 文件: 在该文件中引入header 组件

(2)在app-content 中插入表單組件,製造假數據,并渲染頁面:

在stock-manage.component.ts 文件中:

创建类:Stock:

export class Stock {

constructor (

public id: number,

public name: string,

public price: number,

public rating: number,

public desc: string,

public categories: Array) {

}

}

初始化通过中,创建数据:stocks:

private  stocks: Array;

// 初始化数据:

ngOnInit() {

this.stocks = [

new Stock(1,"第一支股票",1.99,3.5, "我的第一支股票,哈哈哈哈", ['IT',"互联网"] ),

new Stock(2,"第一支股票",1.99,4.5, "我的第一支股票,哈哈哈哈", ['IT',"互联网"] ),

new Stock(3,"第一支股票",1.99,1.5, "我的第一支股票,哈哈哈哈", ['IT',"互联网"] ),

new Stock(4,"第一支股票",1.99,2.5, "我的第一支股票,哈哈哈哈", ['IT',"互联网"] ),

new Stock(5,"第一支股票",1.99,1.5, "我的第一支股票,哈哈哈哈", ['IT',"互联网"] )

];

第六节: 数据的嵌套与传入:

实现功能: 股票评级

stock-manage.componnet.html:

{{ i + 1 }}

{{stock.name}}

{{stock.price}}

修改

删除

55%

遍历数组  stocks;引入app-stars 组件并传递数据:[rating]="stock.rating"

stars组件:

[class.glyphicon-star-empty]="star">

根据数据判断 选择哪个类名

import { Component,Input, OnInit, ViewEncapsulation } from '@angular/core';  // 引入Input功能模块

@Component({

selector: 'app-stars',

templateUrl: './stars.component.html',

styleUrls: ['./stars.component.css'],

encapsulation: ViewEncapsulation.None

})

export class StarsComponent implements OnInit {

@Input()

rating: number = 0;  // 定义引入  rating  并初始化数据为0

stars: boolean[];

constructor() { }

ngOnInit() {

this.stars = [];

for (let i = 1;i<=5;i++) {    // 生成stars数据

this.stars.push(i>this.rating);

}

}

}



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,367评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,959评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,750评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,226评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,252评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,975评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,592评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,497评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,027评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,147评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,274评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,953评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,623评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,143评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,260评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,607评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,271评论 2 358

推荐阅读更多精彩内容