在当前项目目录下,使用Angular-CLI生成一个组件:heroes

ng generate component heroes

主界面(也就是一个主模块+多个单模块,例如我们创建的heroes(单模块也有自己的html\css\ts文件,可以在主页面导入它的视图)):

//类似CSS
app.component.css
//类似HTML
app.component.html
//TypeScript
app.component.ts

//app.component.html
<!--
1.这里和普通的HTML文件差不多,只不过多了模板变量
2.{{value}},双花括号是Angular的插值绑定语法。此插值绑定title在HTML标头标签内呈现组件的属性值。
-->
<div class="inCenter">
<h1>
Welcome to {{ head }}!
</h1>
</div> <!-- 显示 HeroesComponent视图 -->
<app-heroes></app-heroes>

  

//app.component.css
.inCenter {
text-align: center;
color: #f00;
}

  

//app.component.ts
import { Component } from '@angular/core'; @Component({
// selector:选择器
selector: 'app-root',
// 模板地址
templateUrl: './app.component.html',
// 样式地址(数组)
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'fcuk';
head = '66s';
}

  

//app.module.ts
/*
Angular需要知道应用程序的各个部分如何组合在一起以及应用程序需要哪些其他文件和库。这些信息被称为元数据
一些元数据位于您添加到组件类的装饰器中。其他关键元数据在装饰器中。@Component@NgModule
最重要的装饰器注释顶级AppModule类。@NgModule
Angular CLI AppModule在src/app/app.module.ts创建项目时生成了一个类。这是你选择进入的地方FormsModule。
**/ // 1.导入模块
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms'; // <-- NgModel 在这里
import { NgModule } from '@angular/core'; // 2.导入组件
import { AppComponent } from './app.component';
import { HeroesComponent } from './heroes/heroes.component'; @NgModule({ /**
* AppModule 声明这两个应用程序组件,AppComponent和HeroesComponent。
*/
declarations: [
AppComponent,
HeroesComponent
],
imports: [
BrowserModule,
/**
* 然后添加FormsModule到元数据的数组中,
* 其中包含应用程序需要的外部模块列表。@NgModuleimports
*/ /**
* 每个组件必须在一个 NgModule中声明。
* 你没有声明HeroesComponent。那么,为什么该应用程序工作?
* 它的工作原因是Angular CLI HeroesComponent在AppModule它生成该组件时进行了声明。
* 打开src/app/app.module.ts并HeroesComponent在顶部附近找到导入。
*/
FormsModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }

  

//hero.ts
// 这个是创建的Hero类
export class Hero{
id: number;
name: string;
}

  

/heroes/heroes.component.html

<p>
heroes works{{hero}}!
</p> <!-- 显示对象值 --> <!-- 格式与 UppercasePipe,你可以创建你自己的格式化字符串、货币金额、日期等 -->
<h2>{{ hero.name | uppercase }} Details</h2>
<div><span>id: </span>{{hero.id}}</div>
<div><span>name: </span>{{hero.name}}</div> <div>
<label>name:
<input [(ngModel)]="hero.name" placeholder="name">
</label>
</div>

  

/heroes/heroes.component.css

  

heroes/heroes.component.ts
import { Component, OnInit } from '@angular/core'; // 表单模块
// import { FormsModule } from '@angular/forms';
// 导入组件hero.js
import { Hero } from '../hero'; @Component({
//组件的CSS元素选择器
//在CSS元素选择, 'app-heroes'是相匹配的标识父组件模板内此组件的HTML元素的名称
selector: 'app-heroes',
//组件模板文件的位置
templateUrl: './heroes.component.html',
//组件的私有CSS样式的位置
styleUrls: ['./heroes.component.css']
})
export class HeroesComponent implements OnInit { // Hero对象值
hero: Hero = {
id: 1,
name: 'Windstorm'
}
constructor() { } //这ngOnInit是一个生命周期钩子 Angular ngOnInit在创建组件后立即调用。这是放置初始化逻辑的好地方
ngOnInit() {
} }

  

Angular结构简单介绍的更多相关文章

  1. Hadoop源码学习笔记之NameNode启动场景流程一:源码环境搭建和项目模块及NameNode结构简单介绍

    最近在跟着一个大佬学习Hadoop底层源码及架构等知识点,觉得有必要记录下来这个学习过程.想到了这个废弃已久的blog账号,决定重新开始更新. 主要分以下几步来进行源码学习: 一.搭建源码阅读环境二. ...

  2. ANDROID培训准备资料之项目结构简单介绍

    Android Studio项目结构初步主要介绍下面几个文件夹,后续再补充 (1)java文件夹的介绍 (2)Res文件夹的介绍 (3)R文件的介绍 (4)Manifests文件夹的介绍 我们先看看整 ...

  3. weblogica 目录结构 简单介绍 创建domain domain所在目录

    1. samples 创建过程略过 domain的目录 [weblogic@node2 base_domain]$ pwd /home/weblogic/Oracle/Middleware/Oracl ...

  4. Vue3项目的简单搭建与项目结构的简单介绍

    Vue3项目的创建与运行 本文记录下自己近期学习的Vue3项目的创建,以及如何去运行一个Vue应用,同时包括对Vue项目结构进行一个简单的介绍. 一.node与npm的安装 通常平常进行开发的同学应该 ...

  5. django的下载安装,目录结构的介绍,简单的django应用

    1.django的下载安装 pip3 install django==1.11.9 2.django的创建 1.在windows的cmd窗口下 1.1创建django项目 django-admin s ...

  6. React 简单介绍

    React 简单介绍 作者 RK_CODER 关注 2014.12.10 17:37* 字数 2516 阅读 55715评论 6喜欢 70 why React? React是Facebook开发的一款 ...

  7. angular1.x的简单介绍(二)

    首先还是要强调一下DI,DI(Denpendency Injection)伸手获得,主要解决模块间的耦合关系.那么模块是又什么组成的呢?在我看来,模块的最小单位是类,多个类的组合就是模块.关于在根模块 ...

  8. Linux的简单介绍和常用命令的介绍

    Linux的简单介绍和常用命令的介绍 本说明以Ubuntu系统为例 Ubuntu系统的安装自行百度,或者参考http://www.cnblogs.com/CoderJYF/p/6091068.html ...

  9. iOS-iOS开发简单介绍

    概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序.但是这里我想强调一下,前面的 ...

随机推荐

  1. Linux文件查找find和locate

    目 录 第1章 locate文件查找    1 1.1 概述    1 1.2 locate文件查找的特性    1 第2章 文件查找概述    1 第3章    1 3.1 文件名查找    1 3 ...

  2. 关键css

    参考: 掘金-JS和CSS的位置对资源加载顺序的影响 起舞-什么是关键CSS 有兴趣也可以看看这里一篇关于页面加载的文章.以上掘金那篇文章说css的加载不会影响其他资源的下载,但是我测试了一下,发现是 ...

  3. 一直被用错的6种SQL 错误用法

    一直被用错的6种SQL 错误用法 1.LIMIT 语句 2.隐式转换 3.关联更新.删除 4.EXISTS语句 5.条件下推 6.提前缩小范围 sql语句的执行顺序: FROM ON JOIN WHE ...

  4. LeetCode(65) Valid Number

    题目 Validate if a given string is numeric. Some examples: "0" => true " 0.1 " ...

  5. LeetCode(18)4Sum

    题目 Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = ...

  6. list、tuple、dict内部功能释义

    一.list内部功能释义 运用频次:☆☆☆☆☆ 1. append():列表末尾插入元素 [示例] >>> L1=[11,22,33] >>> L1.append( ...

  7. jQuery+ajax城市联动

    分享一下自己最近写的城市联动.技术使用ajax+jQuery实现. 首先请看前台的javascript代码. 以下是连个实现异步加载的方法. <script type="text/ja ...

  8. Boolean.valueOf("true")的用法

    Boolean.valueOf(a);a为true时返回true不管大小写,a为其他值时都返回false:

  9. zoj 1383 Binary Numbers

    Binary Numbers Time Limit: 2 Seconds      Memory Limit: 65536 KB Given a positive integer n, print o ...

  10. 在C#代码中应用Log4Net系列教程(附源代码)地址

    在博客园看到一篇关于Log4Net使用教程,比较详细,感谢这位热心的博主 博客园地址:http://www.cnblogs.com/kissazi2/archive/2013/10/29/339359 ...