Angular从零到一1.4 第一个组件

1.4 第一个组件


现在,为我们的App增加一个Component吧,在命令行窗口输入 ng generate component login --inline-template --inline-style 。 顾名思义,参数generate是用来生成文件的,参数component是说明我们要生成一个组件,login是我们的组件名称,你可以自己想个其他有意思的名字。后面的两个参数是告诉angular-cli:生成组件时,请把组件的HTML模板和CSS样式和组件放在同一个文件中(其实分开文件更清晰,但第一个例子我们还是采用inline方式了):

wangpengdeMacBook-Pro:blog wangpeng$ ng generate component login --inline-template --inline-style

installing component

  create src/app/login/login.component.spec.ts

  create src/app/login/login.component.ts

wangpengdeMacBook-Pro:blog wangpeng$?

是不是感觉这个命令行太长了?幸运的是Angular团队也这么想,所以你可以把上面的命令改写成  ng g c login -it -is  ,也就是说可以用generate的首字母g来代替generate,用component的首字母c来代替component,类似的--inline-template的两个词分别取首字母变成-it。

angular-cli为我们在login目录下生成了两个文件,其中 login.component.spec.ts 是测试文件,我们这里暂时不提。另一个login.component.ts 就是我们新建的Component了。

Angular提倡的文件命名方式是这样的:组件名称.component.ts ,组件的HTML模板命名为:组件名称.component.html,组件的样式文件命名为: 组件名称.component.css。建议读者在编码中尽量遵循Google的官方建议。

我们新生成的Login组件源码如下:

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

 

//@Component是Angular提供的装饰器函数,用来描述Compoent的元数据

//其中selector是指这个组件的在HTML模板中的标签是什么

//template是嵌入(inline)的HTML模板,如果使用单独文件可用templateUrl

//styles是嵌入(inline)的CSS样式,如果使用单独文件可用styleUrls

@Component({

  selector: 'app-login',

  template: '

    <p>

      login Works!

    </p>

  ',

  styles: []

})

export class LoginComponent implements OnInit {

  constructor() { }

  ngOnInit() {

  }

}

这个组件建成后我们怎么使用呢?注意上面的代码中@Component修饰配置中的 selector: ‘app-login’,这意味着我们可以在其他组件的template中使用 <app-login></app-login> 来引用我们的这个组件。

现在我们打开  src/app/app.component.html 加入我们的组件引用:

<h1>

  {{title}}

</h1>

<app-login></app-login>

保存后返回浏览器,可以看到我们的第一个组件也显示出来了,如图 1.5所示。

 

图1.5 第一个组件的显示

时间: 2024-09-07 14:06:02

Angular从零到一1.4 第一个组件的相关文章

《Angular从零到一》导读

本节书摘来自华章出版社<Angular从零到一>一书中作者Richard Banfield 著 易艺 译   前 言 一个大叔码农的Angular 2创世纪 作为一个出生于20世纪70年代的大叔,我在软件这个领域已经摸爬滚打了16年,从程序员.项目经理.产品经理,项目总监,到部门管理等各个角色都体验过,深深地了解到这个行业发展的速度之快是其他行业无法比拟的:从编程语言.各种平台.各种框架.设计模式到各类开源工具.组件林林总总,要学习的东西实在太多,因为变化太快. 但万变不离其宗,名词变化虽多,

COM组件设计与应用(六)——用ATL写第一个组件(vc.net)

一.前言 1.与 <COM 组件设计与应用(五)>的内容基本一致.但本回讲解的是在 vc.net 2003 下的使用方法,即使你不再使用vc6.0,也请和上一回的内容,参照比对. 2.这第一个组件,除了所有 COM 组件必须的 IUnknown 接口外,我们再实现一个自己定义的接口 IFun,它有两个函数: Add()完成两个数值的加法,Cat()完成两个字符串的连接. 3.下面......好好听讲! 开始了:-) 二.建立 ATL 工程 步骤2.1:建立一个解决方案. 步骤2.2:在 该解决

Angular从零到一1.3 第一个小应用 Hello Angular

1.3 第一个小应用 Hello Angular 那么现在开启一个terminal(命令行窗口),键入 ng new hello-angular ,你会看到以下的命令行输出. wangpengdeMacBook-Pro:~ wangpeng$ ng new hello-angular installing ng2   create .editorconfig   create README.md   create src/app/app.component.css   create src/ap

Angular从零到一3.1 建立routing的步骤

第3章 建立一个待办事项应用 这一章我们会建立一个更复杂的待办事项应用,当然,登录功能也还保留,这样应用就有了多个相对独立的功能模块.以往的Web应用根据不同的功能跳转到不同的功能页面.但目前前端的趋势是开发一个SPA(Single Page Application,单页应用),所以其实我们应该把这种跳转叫视图切换:根据不同的路径显示不同的组件.那我们怎么处理这种视图切换呢?幸运的是,我们无需寻找第三方组件,Angular官方内建了自己的路由模块.我们会在接下来的学习中逐渐了解这个路由是怎么使用

Angular从零到一2.2 建立一个服务完成业务逻辑

2.2 建立一个服务完成业务逻辑 如果我们把登录的业务逻辑在onClick方法中完成,这样当然也可以,但是这样做的耦合性太强了.设想一下,如果我们增加了微信登录.微博登录等,业务逻辑会越来越复杂,显然我们需要把这个业务逻辑分离出去. 那么我们接下来创建一个AuthService吧,首先我们要在在src中新建一个叫做core的文件夹(src\app\core),然后命令行中输入 ng g s core\auth (s这里是service的缩写,core).auth.service.ts和auth.

Angular从零到一2.1 对于login组件的小改造

第2章 用Form表单做一个登录控件 从这一章起我们会打造一个待办事项列表的应用(Todo),这个Todo应用让人们可以输入新的待办事项,事项完成后,可以标记其为完成,也可以全部反转目前列表中事项的完成状态,以及清除所有已完成的事项.列表中还会有一个筛选器,用户可以通过筛选器筛选出所有活动的事项以及已完成的事项.这个应用在各个前端框架的比较中经常用到,因为它麻雀虽小五脏俱全. 当然我们会再给这个应用加点料,首先这个应用应该有Web API后台,而不仅仅是一个内存版本.再有,我们要打造一个支持多用

Angular从零到一1.5 一些基础概念

1.5 一些基础概念 有了前面的例子,就可以粗略介绍一些Angular的基础概念了,这些基础概念在后面的章节中会更详细地讲解. 1.5.1 元数据和装饰器 Angular中大量地使用了元数据.元数据是什么呢?元数据的定义是这样的:元数据是用来描述数据的数据. 天啊,这什么意思啊?没关系,我们来看一个例子,大家都在电脑上有文件浏览器,随便选择一个文件,我们可以右键选择这个文件的属性看一下,如图 1.6所示. 我们看到文件本身其实就是一个二进制格式的数据,而在文件的属性中我们又发现了对此数据的描述,

Angular从零到一2.5 验证结果的样式自定义

2.5 验证结果的样式自定义 如果我们在开发工具中查看网页源码,可以看到经过渲染后的控件HTML代码,如图 2.11所示.   图 2.11 验证的样式 用户名控件的HTML代码是下面的样子:在验证结果为false时input的样式是ng-invalid: <input   name="username"   class="ng-pristine ng-invalid ng-touched"   required=""   type=&qu

Angular从零到一1.2 环境配置要求

1.2 环境配置要求 Angular 2需要node.js和npm,我们下面的例子需要node.js 6.x.x和npm 3.x.x,请使用 node -v 和 npm -v 来检查,Mac 下建议采用brew安装node.由于众所周知的原因,http://npmjs.org 的站点访问经常不是很顺畅,这里给出一个由淘宝团队维护的国内镜像 http://npm.taobao.org/ .安装好node后,请输入npm config set registry https://registry.np