Angular4.0入门

angular与其他的差别

angular cli安装

cnpm install -g @angular/cli 最新版本

cnpm uninstall -g @angular/cli 卸载全局版本

npm install -g @angular/[email protected] 指定版本

环境报错

ionic的安装

cnpm install -g cordova ionc

如果报错

npm install @ionic/[email protected] --save-dev

项目解决问题

[email protected]t/core 报错解决

"@angular/flex-layout":?"^5.0.0-beta.13",

创建项目

ng new 项目名称 创建项目

cd 项目名

cnpm install // cnpm install --by=npm

ng serve --open //直接打开 npm sr

快速删除node_modules

npm install rimraf -g

rimraf node_modules

rm -rf node_modules

项目结构分析

.angular-cli.json Angular CLI 的配置文件

.editorconfig 给你的编辑器看的一个简单配置文件

.gitignore 一个Git的配置文件

karma.conf.js 给Karma的单元测试配置

src目录结构

app/app.component.{ts,html.css,spec,ts} 组件使用HTML模块,css样式和单元测试定义AppComponent组件,他是根组件

app/app.module.ts 定义AppModule,这个跟模块会告诉Angular如何申明组件

assets/* 静态文件

environments/* 这个文件夹中包括为各个环境准备的文件

favicon.ico 请把他换成你自己的图标

mian.ts 这是应用的主要入口点

jQuery和Bootstrap

安装jQuery和Bootstrap

npm install jquery --save

npm install bootstrap --save

cnpm i -S [email protected] 指定版本

让Typescript类型识别jquery和Bootstrap类型的描述文件

npm install @types/jquery --save-dev

npm install @types/bootstrap --save-dev

.angular-cli.josn 文件中的apps下scripts里分别写入

"../node_modules/jquery/dist/jquery.min.js",
"../node_modules/bootstrap/dist/js/bootstrap.min.js"

在全局引入css找到style.css文件.写入全局样式

@import "~bootstrap/dist/css/bootstrap.min.css";

生成组件

在根目录运行ng g component component/navbar 生成导航条组件(在component下创建navbar组件)并会app.module.ts 里面添加这个组件并且声明组件

组件名 用途
app 项目自带的默认component
navbar 网页/APP导航条
search 搜索区域
product 商品详情
stars 星级评分
foot 底部信息

打开我们的app.component.html把单页面应用的基本骨架搭建起来

组件

app.conponents.ts这个组件

@Component组件的装饰器

selector 用来定义组件渲染的标签名称,说白了就是组件的名字

templateUrl 用来指定组件的模板文件

styleUrls 一个数组,用来存放组件相关的样式文件

import {Components.ts} from "@angular/core"
@Component({
  selector:"app-root",
  templateUrl:"./app.component.html"
  styleUrls:["./app.component.css"]
})
export class AppComponent{
  title="app"; //组件的数据,或者函数
}

Angular的指令

  • 组件:用于构建UI组件,继承与Directive类
  • 属性指令:用于改变组件的外观或行为
  • 结构指令: 用于动态添加或者DOM元素来改变DOM布局

Component(组件)是整个框架的核心,也是终极目标,"组件化"的意义有2个:

  • 第一是分治,因为有了组件之后,我们可以把各种逻辑封装在组件内部,避免混在一起
  • 第二是复用,封装成组件之后不仅可以在项目内部复用,而且可以沉淀下来跨项目复用

typescript

npm install -g typescript 全局配置

tsc -version 查看安装的版本

tsc 文件路径 编译成js

总结

变量声明

  • let
  • const

基本数据类型

  • boolean 布尔值
  • number 数字
  • string 字符串
  • 数组 number[]或者Array
  • 元祖[number,string]
  • let arr3:[number,string]=[10,"jack"]
  • 对象object
  • 接口interface
  • interface Person{ name:string, age:number } let user:Person={ name:"jack", age:18 }
  • 任意类型any在不确定类型的情况下可以使用any但是尽量少用
  • 函数空返回值void
  • nullundefined
  • *ngFor *ngIf ng-template与[ngIf]直接给大盒子进行数据绑定
  • <li *ngFor="let todo of todos"> {{todo.title}}</li> const todos=[{id:1,title:‘小明‘,done:true}] <footer class="footer" *ngIf="todos.length"></footer> <ng-template [ngIf]="todos.length"></ng-template>
  • ngClass="{类名:true}" //可以跟双向双向绑定一起进行绑定class

基础项目: TodoMVC

声明属性的几种方式

public 默认 可以再这个类中使用,也可以再累外面使用

protected 保护类里 他只有在当前类和他的子类里面可以访问

private 已有 只有在当前类才可以访问这个属性

<div id="{{msg}}">ffff</div>

<div [title]="msg">鼠标喵上去</div>

<div [innerHTML]="h"></div> //可以识别 constructor 里面this.h的标签内容

<li *ngFor="let item of list3;let key=index"> {{item.titlte}}---{{key}} </li>

双向数据绑定

在app.module.ts里面添加

import { FormsModule } from "@angular/forms";
 imports: [

    FormsModule //添加这个

  ],

在表单中双向绑定某个数据需要具有name属性

在html上添加双向绑定的数据

<input class="toggle" type="checkbox" [(ngModel)]="todo.done">

路由的基本处理

ng generate module app-routing --flat --module=app

app-routing.module.ts

import { RouterModule, Routes } from '@angular/router';
import { FooComponent } from './foo/foo.component'
import { BarComponent } from './bar/bar.component'
const routes: Routes = [
   {
    path: '',
    redirectTo: '/contacts', // 当请求根路径的时候,跳转到contacts联系人组件
    pathMatch: 'full' // 必须完全匹配到路径的时候才做重定向
  },
  // 路由嵌套导航
  {
    // 当我们访问contacts的时候,会先把LayoutComponent渲染出来
    path: 'contacts',
    component: LayoutComponent,
    children: [
      {
        path: '',
        component: ContactListComponent
      },
      {
        path: 'new', // 这里的new的请求路径是 /contacts/new
        component: ContactNewComponent
      },
      {

        path: 'edit',

        component: ContactEditComponent
      }
    ]
  },
  {
    path: 'foo',

    component: FooComponent
  },
  {

    path: 'bar',

    component: BarComponent
  }
]
@NgModule({

  imports: [
    RouterModule.forRoot(routes)
  ],
  exports: [ RouterModule ]
})
export class AppRoutingModule {}

打包发布

ng build --prod --aot

假设我想打包成www.w3cways.com/test/index.html则执行

ng build --base-href /test/

会生成dist文件夹,将dist文件夹中的文件,直接上传到服务器便可访问

压缩打包

ng?build?--prod?--no-extract-license

倒置所有脚本资源的加载URL指向根目录。Angular Cli 提供一个参数改变该值。

ng build --prod --bh /v2/

原文地址:https://www.cnblogs.com/fangdongdemao/p/8972616.html

时间: 2024-08-07 14:01:35

Angular4.0入门的相关文章

Omnet++ 4.0 入门实例教程

http://blog.sina.com.cn/s/blog_8a2bb17d01018npf.html 在网上找到的一个讲解omnet++的实例, 是4.0下面实现的. 我在4.2上试了试,可以用.照着做就能完成,有些小地方不同而已 Omnet++ 4.0 入门实例教程根据http://omnest.com/webdemo/ide 上的实例,自己动手做了做.新版本的4.0 跟它视频上的版本有些差别,配图说明一下我的操作过程,供大家一起学习.现在开始.首先,开发环境选择simulation 的视

第十节 VMware View 6.0 入门 安全服务器的安装和部署

第十节 VMware View 6.0 入门 安全服务器的安装和部署 一.部署安装一台Windows 2008 R2 的虚拟机 security01,修改计算机名称和IP.DNS 二.下载VMware-viewconnectionserver-x86_64-6.0.1-2088845.exe 三.在连接服务器上设置安全服务器的配对密码 四.安装"安全服务器"的软件 五.在连接服务器上开启"pcoip安全网关"

Scratch2.0入门介绍

Scratch2.0入门介绍 [教学目标] 1. 演示Scratch2.0作品,激发学习兴趣. 2. 认识Scratch2.0界面及分享平台 3. 了解创作作品的步骤 [教学课时]      15分钟 [对象]      零基础中小学生及父母 [教学重点.难点]      教学重点:Scratch2.0编辑器的下载与安装.在线注册用户 [教学方法与手段]      演示法.自主探究学习法 [教学准备] 教学课件 [教学过程] 一. 创设情境,激发兴趣 演讲者:看见电视里的动画.或者别人制作的游戏

Spring3.0 入门进阶(6):自定义校验器

在Spring 3 中,对表单提交的校验方式比较常见的有两种 (1)基于注解:对于简单的属性校验,例如,长度,非空等,可以使用Spring,或是Hibernate自带的校验注解 (2)自定义校验类:对于复杂的业务校验可以自定义校验类,该类继承自org.springframework.validation.Validator (3)前台JS校验 增加表单校验功能大概分一下几个步骤 定义校验规则 基于注解的验证 只需要在相关的实体字段上添加校验注解即可,下面的例子基于hibernate的校验标签 i

spring web flow 2.0入门(转:http://luanxiyuan.iteye.com/blog/2282126)

Spring Web Flow 2.0 入门详解 博客分类: spring 目录: 参考文献 购物车用例 什么情况下可以使用 Spring Web Flow? 配置 Spring Web MVC 配置 Spring Web Flow 2.0 的基础 在购物车示例应用中配置 Spring Web Flow 用 Unified EL 实现业务逻辑 用 subflow 实现添加商品到购物车功能 global transition 简介 1.参考文献 参考1:http://www.ibm.com/dev

ExtJs4.0入门错误

当在eclipse中的web工程中增加了extjs4,出现An internal error occurred during: "Building workspace". Java heap space 错误. 解决办法1:把extjs4的工程安装包不要放到web工程中就ok了,或者建议直接用myeclipse直接导入的exjts4包,就没问题. 解决办法2:导入ExtJS包,这样会卡死eclipse的.去到工程根目录下,找到.project,用记事本打开,把两处删除掉: 第一处: &

Servlet 4.0 入门

Java? Servlet API 是主流服务器端 Java 的基本构建块,也是 Java EE 技术的一部分,例如,用于 Web 服务的 JAX - RS.JSF (JavaServer Faces) 和 JSP (JavaServer Pages).Java servlet 也独立存在,提供一系列支持动态 Web 内容的功能.其中包括过滤器.Web 安全性以及用于处理 HTTP 请求和响应的功能. Servlet 4.0 是 API 的最新版本,也是 Java EE 8 规范的核心更新.正如

ASP.NET Core 3.0 入门

原文:ASP.NET Core 3.0 入门 课程简介 与2.x相比发生的一些变化,项目结构.Blazor.SignalR.gRPC等 课程预计结构 ASP.NET Core 3.0项目架构简介 ASP.NET Core MVC 简介 Blazor SignalR Web API gRPC 发布 一. 创建项目 dotnet core 本质上是控制台应用 1. DI 依赖注入(Dependency Injection) IoC 容器(Inversion of Control)控制反转 注册(服务

Solr7.3.0入门教程,部署Solr到Tomcat,配置Solr中文分词器

solr 基本介绍 Apache Solr (读音: SOLer) 是一个开源的搜索服务器.Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现.Apache Solr 中存储的资源是以 Document 为对象进行存储的.每个文档由一系列的 Field 构成,每个 Field 表示资源的一个属性.Solr 中的每个 Document 需要有能唯一标识其自身的属性,默认情况下这个属性的名字是 id,在 Schema 配置文件中使用:id进行描述.Solr是