在当前项目目录下,使用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. 这就是那个feature map256 256向量

    http://blog.csdn.net/XZZPPP/article/details/51582810 在这个特征图上使用3*3的卷积核(滑动窗口)与特征图进行卷积,那么这个3*3的区域卷积后可以获 ...

  2. error C2143: 语法错误 : 缺少“;”(在“&”的前面)

    报错: error C2143: 语法错误 : 缺少“;”(在“&”的前面) 代码: #include <iostream> ostream & << (ost ...

  3. PRJ0003 : Error spawning 'midl.exe'

    原因:出现该错误的是由于:C:\Program Files\Microsoft SDKs\Windows\v6.0A midl.exe 和midlc.exe缺失. 解决方法:从别人电脑上拷贝这个两个文 ...

  4. python关于入参中,传入的是指针还是引用

    偶然看到别人的代码,发现有的会传入参数之后,做一次copy,试验一下,关于入参中,传入的是指针还是引用先说自己的结论:1.如果传入的是简单的类型,那么传入应该是引用的数值,2.假如传入的是df这种类型 ...

  5. python调用aapt工具直接获取包名和tagertSdkversion

    背景: 每次海外游戏上架都需要符合google的上架规则,其中适配方面tagetSdkversion有硬性要求,比如需要适配安卓q就需要tagetSdkversion达到28,水平太渣的我每次调用aa ...

  6. linux 搜索文本

    find -type f -name '*.php'|xargs grep '127.0.0.1'  搜索所有.php 内容 127.0.0.1 转自:http://www.cnblogs.com/w ...

  7. typedef重复定义 和 error: ‘long long long’ is too long for GCC

    今天发现一个很有意思的编译问题,然后在Stack Overflow上也有看到类似的.就是出现了 long long long 类型错误提示 错误提示如下: /home/yejy/algorithm_a ...

  8. 常用的网络通信命令--write.wall.mesg.mail

    write 作用:给其它的在线用户发送消息 格式:write  [ 用户名 ]  [ tty ] 注意点:使用之前最好使用 who 命令查看当前在线用户,tty 为端口号 使用举例: 在光标闪烁的地方 ...

  9. 如何用纯 CSS 创作一个渐变色动画边框

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/odpRKX 可交互视频教 ...

  10. K8S部署

    k8S部署 柯穴上网 安装openvpn来获取docker镜像(不是本文重点不做详述) 软件包安装 1 关闭iptables,禁用firewalld,关闭selinux 2 配置yum仓库(使用阿里云 ...