[TOC]
- 这是2017年学习angular的记录, 学了两天之后后面就没有继续进行学习,项目也没有使用到
## 1,配置环境和应用构建
- @安装nodejs 下载 .msi的安装包
http://www.runoob.com/nodejs/nodejs-install-setup.html
- @npm安装
http://www.runoob.com/nodejs/nodejs-npm.html
- cnpm淘宝的包管理工具安装
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
- //安装cli的管理工具
cnpm install -g @angular/cli 安装angular管理工具
- 设置angular的默认的
ng set --global packageManager=cnpm
```
创建项目
ng new my-app
进入项目目录启动项目
cd my-app
ng serve --open
```
- 访问localhost:4200 就看见程序了哦
- 发布应用: ng build --prod --aot 需要配置路由
## 2,[日记]使用中遇到的错误
* [ ] 1.2017年11月18日22:43:51 使用cnpm创建新项目失败
```
Installing packages for tooling via cnpm.
× Install fail! Error: UNKNOWN: unknown error, symlink 'e:\work\angular\myng\no
de_modules\_tslib@1.8.0@tslib' -> 'e:\work\angular\myng\node_modules\_@angular_h
ttp@5.0.2@@angular\http\node_modules\tslib'
Error: UNKNOWN: unknown error, symlink 'e:\work\angular\myng\node_modules\_tslib
@1.8.0@tslib' -> 'e:\work\angular\myng\node_modules\_@angular_http@5.0.2@@angula
r\http\node_modules\tslib'
npminstall version: 3.2.1
npminstall args: D:\soft\nodejs\node.exe C:\Users\Administrator\AppData\Roaming\
npm\node_modules\cnpm\node_modules\npminstall\bin\install.js --china --userconfi
g=C:\Users\Administrator\.cnpmrc --disturl=https://npm.taobao.org/mirrors/node -
-registry=http://registry.npm.taobao.org
Package install failed, see above.
Package install failed, see above.
e:\work\angular>
ng set --global packageManager=npm
```
- 解决: 查看npm版本 官方的是5.5 淘宝镜像是5.1 于是器换成原来的npm 就创建成功了..
## 3,angular的基础使用
### 使用插值表达式显示组件属性
{{goods.name}}
- angular typescript 常量数组对象
const HEROES: Hero[ ]
### 双向绑定
```
<input [(ngModel)]="goods.name" placeholder="name">
需要在 module.ts导入表单处理插件
import { FormsModule } from '@angular/forms';
然后高度angular它正在使用的插件列表
imports: [
BrowserModule,
FormsModule
],
```
### 基础的模板
```
//遍历数组 , i语句
//循环 把heroes数组中的值 存入hero中 遍历出来
<li *ngFor="let hero of heroes">
<span class="badge">{{hero.id}}</span> {{hero.name}}
</li>
//if语句
<div *ngIf="selectedHero">
看到我了
</div>
```
### 父组件和子组件的值传递
`<hero-detail [hero]="selectedHero"></hero-detail>`
- 子组件导入输入组件
`import { Component, Input } from '@angular/core';
`
@Input() hero: Hero; //类里面接收参数的属性 表明这是一个输入属性
- 在appmodule中声明新定义的组件
`import { HeroDetailComponent } from './hero-detail.component';
`
declarations: [ AppComponent, HeroDetailComponent ],
- 然后添加子组件的选择器的容器
` <goods-detail [goods]="selectedGood"></goods-detail>`
## 4,开发规范
* 组件的类名应该是大驼峰形式,并且以Component结尾。 因此英雄详情组件的类名是HeroDetailComponent。
* 组件的文件名应该是小写中线形式,每个单词之间用中线分隔,并且以.component.ts结尾。 因此HeroDetailComponent类应该放在hero-detail.component.ts文件中。
我们遵循的文件命名约定是:服务名称的小写形式(基本名),加上.service后缀。 如果服务名称包含多个单词,我们就把基本名部分写成中线形式 (dash-case)。 例如,SpecialSuperHeroService服务应该被定义在special-super-hero.service.ts文件中。
## 5,服务
主要讲数据源单独封装到方法里面
1.把数据源写入了一个对象中 加入export修饰符
```
export const GOODSLIST:Goods[]=[{id:3,name:'衣服'}, {id:4,name:'裤子'},{id:5,name:'头发'},{id:6,name:'袜子'} ];
```
- 告诉系统 这个是数据源 这么创建
- providers: [HeroService]
- 构造函数不应该包含复杂的逻辑,
- 只要我们实现了 Angular 的 ngOnInit 生命周期钩子,Angular 就会主动调用这个钩子
- 异步获取服务器数据
this.heroService.getHeroes().then(heroes => this.heroes = heroes);
## 6,路由
在app的component的 app.module.ts中 导入程序需要的组件 就可以引入其他组件
Angular 路由器是一个可选的外部 Angular NgModule,名叫[RouterModule](https://angular.cn/api/router/RouterModule)。 路由器包含了多种服务([RouterModule](https://angular.cn/api/router/RouterModule))、多种指令([RouterOutlet](https://angular.cn/api/router/RouterOutlet)、[RouterLink](https://angular.cn/api/router/RouterLink)、[RouterLinkActive](https://angular.cn/api/router/RouterLinkActive))、 和一套配置([Routes](https://angular.cn/api/router/Routes))。我们将先配置路由。
打开index.html,确保它的区顶部有一个元素(或动态生成该元素的脚本)。
- 内容说明
- git的使用
- 常用复制
- mysql
- uniapp
- 学习记录
- 序言 导航栏目
- 1, css flex布局学习
- vscode插件开发
- Yaf框架使用
- 代码编辑器使用
- 企业运营
- vue组件项目使用markdown作为文档
- 使用gulp
- 待学习内容
- 常用业务逻辑
- 定时任务
- 多语言
- 微信支付
- 视频处理
- excel导出导入
- php
- 架构
- 配置
- sysconfig
- 微擎二次开发
- 人人商城后台开发
- 后台管理-菜单权限
- 一些建的表
- 常用
- form
- 常用函数
- 人人商城开发
- FoxUI
- 插件二次开发
- 资金
- 注册推荐人
- 基本
- 后台开发
- thinkcmf-curd
- apis
- thinkcmf
- fastadmin
- swoole
- thinkphp使用swoole
- composer
- 开发composer包
- 错误记录
- laraval框架
- php跨域问题
- nginx
- apache
- EasySwoole的使用
- 学习笔记1
- thinkphp6
- 文件上传
- mysql
- 存储过程
- 日志查询 binlog
- 数据库优化
- php调试
- 开源项目二次开发笔记
- 禾匠
- 订单
- 测试接口
- 知识体系
- php遇到的错误
- php8新特性
- 快速开发-基础包-文档
- vue-open-pc基础架构
- 序言
- 页面创建
- axios接口调用
- vue-open-mobile基础结构
- 序言
- 微擎-应用市场
- mulo-admin-tp
- zoo-admin
- 基础增删改查
- 列表页
- curd
- Popup弹出层
- 项目架构
- 微服务
- nginx
- 常用命令
- 配置说明
- 配置负载均衡
- 代理内网数据库
- 限流
- 变量
- nginx语法
- 项目管理
- 测试体系
- 压力测试
- Jenkins
- 开发环境构建
- 服务器
- linux系统
- linux常用命令
- 日志系统
- 自动化部署
- 宝塔webhook
- 项目部署
- 大数据
- hadoop
- HBase 亿级数据的分布式非关系型数据库
- MaxCompute 阿里云云计算数据库
- Hive 数据库for hadoop
- redis
- linux
- 部署环境常用
- 个人开源npm包-文档
- mulo-test
- mulo-cli包 构建工具
- 命令说明
- mulo-tools 常用js工具整合
- Url
- 辅助函数
- jsx
- FileSystem
- mulo-codes包 我的常用代码 演示包
- mulo-validate 验证类函数
- vscode-codes包 vscode代码片段
- phpdefault
- js
- php-thinkcmf
- mulo-ui
- 代码高亮实现
- 文档功能实现
- css包规则
- mulo
- mulo-admin
- 列表页组件
- 列表页组件-筛选
- vue插件
- npm包学习和使用
- Markdown-it解释器
- cp-cli文件,文件夹复制
- remark markdown的插件
- transliteration 文字转换为拼音
- 常用包
- lerna 代码git库耦合度
- lodash
- web全栈
- vite
- web应用性能优化
- vue3
- vue3组件开发
- 构建工具
- rollupjs
- 前端常见问题
- 创建跨域代理服务
- 背景精灵图制作
- js导出导入excel
- gulp构建工具
- 使用gulp打包scss
- gulp-autoprefixer根据浏览器处理前缀
- gulp-cssmin压缩css
- gulp+browser-sync前端自动化
- 使用记录
- webpack的使用
- 2019年11月4日实战记录
- 2019年11月4知识点
- 浏览器自动刷新 webpack-dev-server
- 被坑日记
- 使用eleme的md加载器
- 加载资源
- 自定义loader
- 使用记录
- 开发library
- 使用jsx
- 动态打包
- vue
- cli3
- 常用复制
- 常用插件的使用
- jquery
- vux状态管理
- [组件库]mint-ui饿了么
- [上拉加载]模块
- bootstrap框架引入
- sass样式
- axios数据交互
- swiper幻灯片插件
- storejs本地存储插件
- vuet状态管理(vux的简化版)
- nuxt服务端渲染
- 基础使用
- vue与后台交互数据
- 创建项目
- 使用常见问题
- 前后端分离权限认证方案
- 使用记录-遇到的问题
- 组件开发
- vue知识map
- 常用组件库
- dev tool
- 常用组件库整理
- angular
- 学习记录-2017
- css样式
- bootstrap笔记
- css3使用
- 使用记录
- 动画
- css单位
- 实例代码
- 悬浮窗
- 被坑日记
- 贝塞尔曲线
- javascript
- javascript高级使用
- javascript写法收集
- 代码记录
- jquery的使用
- 发送验证码倒计时
- js实现addclass removeclass
- 基础
- ES6的新特性
- javascript遇到的坑
- nodejs
- 优秀开源项目
- [框架]express
- 基础
- test
- 进程管理
- knexjs 查询构建
- mogodb
- npm
- 开发npm包
- 开发全局包-命令行工具
- 开发细节记录
- 使用记录
- npm包的依赖说明
- 命令说明
- typescript
- 入门
- typescript基础
- 声明文件呢 types .d.ts
- uni-app
- 使用记录
- 采坑日记
- web技术点
- html meta标签的常用定义
- 强制跳转到https
- 开发library
- babel编译器
- websocket
- socket.io
- CDN
- 正则使用记录
- 创建技术文档
- sveltejs框架
- 测试
- 测试说明
- e2e UI测试
- 参考
- ava
- vue测试
- pc应用electron.js
- 开发资源
- Flutter
- python
- bui
- eslint
- 云开发
- uniCloud
- app开发
- apicloud-app开发
- 常用复制
- uni-app
- 游戏开发
- phaser 2d游戏框架
- 1 基本学习 ,创建游戏,场景,加载资源
- 2 摄像机,舞台,世界,缩放控制
- 3 显示对象,图片 图形 按钮 精灵
- 4 其他
- 5 文字
- 6 组
- 7 动画
- 8,atlas的制作和使用,
- 我的composer包
- mulo-app 应用常用类库
- 更多知识随手记一下
- 教育法
- 物联网
- 51单片机
- arduino单片机
- 被坑日记
