应用(Application)是由组件构成的树。树的根部是最顶层的组件即应用本身,启动的时候,浏览器会最先渲染顶层组件,然后根据树形结构,迭代渲染子组件。组件是可装配的,可以互相组合以构成更大的组件。本篇作者介绍了创建一个Angular应用的思路和过程。

一、介绍

要编写Angular应用是一个产品列表界面,先要从组件树的角度分析页面构成:

包含导航条、面包屑、产品列表三部分,产品列表又可进一步分割成单个产品->产品图片、价格、分类等。最终组件的树形结构为:

二、创建过程

a) 首先在app文件夹创建Product
Model,数据模型包含的属性有sku、name、
imageUrl、department、price。同级文件夹下有app.component组件,在它的ts文件中初始化Product的数组products,作为界面显示的假数据。html文件代码为:

接下来会创建product-list组件,[productList]=”products”这样的写法表示将当前组件中的products属性传递给product-list组件的productList属性。(onProductSelected)="productWasSelected($event)"表示product-list组件的onProductSelected事件被触发时,调用的是当前组件的productWasSelected方法。

b)product-list组件的ts代码中,用于接收父组件传递过来的products,onProductSelected则是要输出的事件,在click事件被触发时,代码this.onProductSelected.emit(product)可以将onProductSelected“发射”出去,emit真是很形象的说法,类似C#的回调函数吧。

html模板文件主要负责遍历传递进来的products,并传递给它的子组件product-row。

c)product-row组件又可细分为product-image、product-department、price-display三个子组件。product-row的得到product数据后,将其分配给三个组件,对于price-display组件,直接传递了product.price属性。

d) 这样整理之后,理清了跟着写代码时混乱的思绪,再复制随书代码中的样式文件和资源文件。另外还有一些必要的代码vs

code插件已经生成了,比如app.module.ts中,导出这些组件并添加到@NgModule中的代码。这个文件中还通过bootstrap:[AppComponent]设定了要加载的第一个组件为AppComponent。

三、启动过程

在使用Angular-CLI的ng

serve命令启动时,Angular-CLI会从.angular-cli.json中读取启动文件,默认为main.ts,main.ts为整个程序的入口,这个文件中又设定了要加载的第一个模块,本例中为./app/app.module,即AppModule,app.module.ts中又设定了要加载的组件,然后便是迭代加载整个组件树了。

学习资料:The Complete Book on Angular by Nate Murray, Felipe Coury, AriLerner , Carlos Taborda

Angular基础(四) 创建Angular应用的更多相关文章

  1. Angular基础---->AngularJS的使用(一)

    AngularJS主要用于构建单页面的Web应用.它通过增加开发人员和常见Web应用开发任务之间的抽象级别,使构建交互式的现代Web应用变得更加简单.今天,我们就开始Angular环境的搭建和第一个实 ...

  2. 第214天:Angular 基础概念

    一.Angular 简介 1. 什么是 AngularJS - 一款非常优秀的前端高级 JS 框架 - 最早由 Misko Hevery 等人创建 - 2009 年被 Google 公式收购,用于其多 ...

  3. Angular学习笔记—创建一个angular项目

    开始项目前,你需要先安装node和npm,然后执行npm install -g @angular/cli安装Angular CLI. 如何安装node.js和npm npm使用介绍 1.安装angul ...

  4. Angular 基础入门

    简介 什么是AngularJS 一个功能非常完备的前端框架,通过增强HTML的方式提供一种便捷开发Web应用程序的方式 其核心特点就是几乎无任何DOM操作,让开发人员的精力和时间全部集中于业务 MVC ...

  5. Angular安装及创建第一个项目

    Angular简介 AngularJS 诞生于2009年,由Misko Hevery 等人创建,后为Google所收购.是一款优秀的前端JS框架,已经被用于Google的多款产品当中.AngularJ ...

  6. Angular 学习笔记 ( 创建 library, 转换老旧的 library )

    更新 : 2018-10-28 不知道为什么在 ng 跑一直做不到 .d.ts 最后发现,如果有一个插件 propagating-hammerjs.ts 那么就在 root create 一个 pro ...

  7. angular2.0入门---webStorm创建angular CLI项目

    创建项目之前需要先安装angular cli,(angular是用typescript编写的,所以先安装typescript,再安装angularjs-cli).打开命令窗口输入 npm instal ...

  8. 用Angule Cli创建Angular项目

    Angular4.0来了,更小,更快,改动少 接下来为Angular4.0准备环境和学会使用Angular cli项目 1.环境准备: 1)在开始工作之前我们必须设置好开发环境 如果你的机器上还没有安 ...

  9. angular学习笔记(二)-创建angular模块

    如果在页面的html标签(或任意标签)中添加ng-app,表示对整个页面应用angular来管理. 他是一个模块. 模块有助于把东西从全局命名空间中隔离. 今天学习如何自定义创建模块: <!DO ...

随机推荐

  1. DBUtils的增删改查

    数据准备: CREATE DATABASE mybase; USE mybase; CREATE TABLE users( uid INT PRIMARY KEY AUTO_INCREMENT, us ...

  2. 安装 composer 并启动 yii2 项目

    环境 MacOS 10.12.6 PHP 5.6.30 yii2.0 一.composer (类似 node's npm) 1.安装 php -r "copy('https://getcom ...

  3. 机器学习技法笔记:06 Support Vector Regression

    Roadmap Kernel Ridge Regression Support Vector Regression Primal Support Vector Regression Dual Summ ...

  4. C++primer笔记之关联容器

    在这一章中,有以下的几点收获: 1.pair类型的使用相当频繁,如果需要定义多个相同的pair类型对象,可考虑利用typedef简化其声明: typedef pair<string, strin ...

  5. $.parseJson()定义和用法

    $.parseJSON() 函数用于将符合标准格式的的JSON字符串转为与之对应的JavaScript对象. 例子: 这里首先给出JSON字符串集,字符串集如下: var data="  { ...

  6. [EXP]Drupal < 8.5.11 / < 8.6.10 - RESTful Web Services unserialize() Remote Command Execution (Metasploit)

    ## # This module requires Metasploit: https://metasploit.com/download # Current source: https://gith ...

  7. 剑指offer【02】- 替换空格(Java)

    题目:替换空格 考点:字符串 题目描述: 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. ...

  8. .NetCore使用skywalking实现实时性能监控

    一.简介 很久之前写了一篇 <.Net Core 2.0+ InfluxDB+Grafana+App Metrics 实现跨平台的实时性能监控>关于NetCore性能监控的文章,使用Inf ...

  9. TCP/IP 笔记 - 地址解析协议

    地址解析协议(ARP)提供了一种在IPv4地址和各种网络技术使用的硬件地址之间的映射.ARP仅用于IPv4,IPv6使用邻居发现协议,它被合并入ICMPv6.地址解析是发现两个地址之间的映射关系的过程 ...

  10. SQL 必知必会·笔记<15>创建和操纵表

    创建表的两种办法: 使用DBMS 提供的交互式创建和管理数据库表的工具: 直接用SQL 语句创建. 表创建基础 创建表示例: CREATE TABLE Products ( prod_id ) NOT ...