Angular初探

Angular微前端 Portal 安装版本对应的依赖包 @angular/cdk @worktile/planet 以angular 8 为例 子应用准备好之后 子应用的的构建方式: @angular/cdk @worktile/planet @angular-builders/custom-webpack 这安装在开发环境即可(要挂载到portal的子应用都要使用到该插件) 以angula... 阅读详情

  AngularJS是Google开发的一个MVC框架,这是1.0的版本。目前有1.0,2.0,4.0三个版本。2.0之后就是Angular。今年三月份Angular 4.0刚刚推出,所以关于Angular最新版的资料是寥寥无几。初学的话还是从1.0开始学起。
  推荐两个关于AngularJS的网站:
  angularjs 1官网 或 angular2.0/4.0官网
  
AngularJS 通过新的属性和表达式扩展了 HTML。可以构建一个单一页面应用程序(SPAs:Single Page Applications)。AngularJS 是一个 JavaScript 框架。它可通过 script标签添加到 HTML 页面。在github上提供各个 angular.js 版本下载githubAnglar的学习曲线比较陡,不是一般的技术人员可以掌握,所以学习起来会变得非常有趣。

AngularJS的四大核心特性:

1.MVC
Model:数据模型层
View:视图层,负责展示
Controller:业务逻辑和控制逻辑
2.模块化 Model

3.指令系统(特有)

4.双向数据绑定(特有)

在任何页面中必须包含的关键属性是ng-app,它定义了一个Angular应用。一个页面上有且仅有一个ng-app指令,声明引用,类似于C语言中的main函数。

AngularJS的MVC是借助于$scopr实现的
rootScope处于最顶层的作用域对象
作用域有层次结构,和JS中原型查找的机制是一样的
$scope是一个POJO(Plain Old JavaScript Object),提供了工具

Angular 2 是Google推出的一个跨平台全终端的框架,和目前比较火的React和Vue.js相比,Angular2更适合从原生App开发或后端Java/.Net等转型过来开发前端的程序员,因为其开发模型更接近于传统强类型语言的模式

Angular 2第一个小应用 Hello Angular

1.打开terminal(命令行窗口),输入 ng new hello-angular --skip-install , 然后进入 hello-angular 目录执行 cnpm install。

2.推荐在新建 project 时忽略安装 ( 加 –skip-install 参数),然后用 cnpm 执行依赖安装

3.新建了一个名为“hello-angular”的工程,进入该工程目录,输入 code

|-- .editorconfig //通用的编辑器配置文件,以后换IDE时可以保持一些设置的平滑迁移
|-- .gitignore //需要Git忽略的文件列表
|-- angular-cli.json //Angular-CLI配置文件
|-- karma.conf.js //Karma单元测试配置文件
|-- package.json //node打包文件
|-- protractor.conf.js //端到端测试配置文件(集成测试)
|-- README.md
|-- tslint.json //代码Lint静态检查的配置
|-- e2e //端到端测试代码目录
| |-- app.e2e-spec.ts
| |-- app.po.ts
| |-- tsconfig.json
|-- src //源码
|-- favicon.ico //站点收藏图标
|-- index.html //入口页面
|-- main.ts //入口ts文件
|-- polyfills.ts //针对浏览器能力增强的polyfills引用文件
|-- styles.css //全局样式文件
|-- test.ts //测试入口文件
|-- tsconfig.json //TypeScript配置文件
|-- typings.d.ts //项目中使用的TypeScript类型定义引用文件
|-- app //应用目录
| |-- app.component.css //引导性组件的样式文件
| |-- app.component.html //引导性组件的HTML模板
| |-- app.component.spec.ts //引导性组件测试文件
| |-- app.component.ts //系统引导性组件
| |-- app.module.ts //应用根模块
| |-- index.ts //应用入口
|-- assets //站点资源文件夹
| |-- .gitkeep
|-- environments
|-- environment.prod.ts //生产环境配置文件
|-- environment.ts //环境配置

4.打开浏览器输入 http://localhost:4200 即可看到程序运行成功

5.所有都是angular自动替我们生成的,所以打开 src/app/app.component.ts 修改title: title = 'Hello Angular';,保存后查看浏览器,结果已经更新了,热装载的特性使得开发变得很方便。

创建第一个组件

1.为app增加一个组件(Component),在命令行窗口输入

ng generate component login --inline-template --inline-style 

2.参数generate是用来生成文件的,参数component是说明我们要生成一个组件,login是组件名称可以自定义。最后两个参数是告诉angular-cli:生成组件时,请把组件的HTML模板和CSS样式和组件放在同一个文件中

3.可以简化命令改写成

 ng g c login -it -is

4.angular-cli为我们在\src\app目录下生成了一个新文件夹login,在login目录下生成了2个文件,其中 login.component.spec.ts 是测试文件

5.另一个是 login.component.ts 是新建的Component

6.Angular提倡的文件命名方式是这样的:组件名称.component.ts

7.组件的HTML模板命名为: 组件名称.component.html

8.组件的样式文件命名为: 组件名称.component.css

9.新生成的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() { } }

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

11.打开 hello-angular\src\app\app.component.html 加入我们的组件引用

<h1>
  {{title}}
</h1>
<app-login></app-login>

12.保存后返回浏览器,第一个组件显示

模块的概念

1.模块就是提供相对独立功能的功能块,每块完成特定的工作领域。

2.Angular内建的很多库是以模块形式提供的,比如FormsModule封装了表单处理,HttpModule封装了Http的处理等等。

3.每个Angular应用至少有一个模块类 —— 根模块。如同Java的主方法一样,通过引导根模块来启动应用。

4.根模块的类名叫做AppModule,放在 hello-angular\src\app\app.module.ts

import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { HttpModule } from '@angular/http'; import { AppComponent } from './app.component'; import { LoginComponent } from './login/login.component'; @NgModule({ declarations: [ AppComponent, LoginComponent ], imports: [ BrowserModule, FormsModule, HttpModule ], providers: [], bootstrap: [AppComponent] }) export class AppModule { }

5.@NgModule装饰器用来为模块定义元数据。

6.declarations列出了应用中的顶层组件,包括引导性组件AppComponent和创建的LoginComponent。

7.在module里面声明的组件在module范围内都可以直接使用,也就是说在同一module里面的任何Component都可以在其模板文件中直接使用声明的组件,就像在AppComponent的模板末尾加上 一样。

8.imports引入了个辅助模块:

  • BrowserModule提供了运行在浏览器中的应用所需要的关键服务(Service)和指令(Directive),所有需要在浏览器中跑的应用都必须引用
  • FormsModule提供了表单处理和双向绑定等服务和指令
  • HttpModule提供Http请求和响应的服务

9.providers列出会在此模块中“注入”的服务(Service)

10.bootstrap指明哪个组件为引导性组件。当Angular引导应用时,它会在DOM中渲染这个引导性组件,并把结果放进index.html的该组件的元素标签中

<!doctype html> <html> <head> <meta charset="utf-8"> <title>HelloAngular</title> <base href="/"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="icon" type="image/x-icon" href="favicon.ico"> </head> <body> <app-root>Loading...</app-root> </body> </html>

引导过程

1.Angular2通过在main.ts中引导AppModule来启动应用。

2.不同的平台,Angular提供了不同的引导选项。

3.下面是通过即时(JiT)编译器动态引导,一般在进行开发调试时,默认采用这种方式。

//main.ts import './polyfills.ts'; // 连同Angular编译器一起发布到浏览器 import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { enableProdMode } from '@angular/core'; import { environment } from './environments/environment'; import { AppModule } from './app/'; if (environment.production) { enableProdMode(); } //Angular编译器在浏览器中编译并引导该应用 platformBrowserDynamic().bootstrapModule(AppModule);

4.还有一种是通过使用预编译器(AoT - Ahead-Of-Time)进行静态引导,静态方案可以生成更小、启动更快的应用,建议优先使用它,特别是在移动设备或高延迟网络下。

5.使用static选项,Angular编译器作为构建流程的一部分提前运行,生成一组类工厂。它们的核心就是AppModuleNgFactory。引导预编译的

6.AppModuleNgFactory的语法和动态引导AppModule类的方式很相似。

// 不把编译器发布到浏览器 import { platformBrowser } from '@angular/platform-browser'; // 静态编译器会生成一个AppModule的工厂AppModuleNgFactory import { AppModuleNgFactory } from './app.module.ngfactory'; // 引导AppModuleNgFactory platformBrowser().bootstrapModuleFactory(AppModuleNgFactory);

主要参考资料:
[1]. 王芃著,《Angular》,机械工业出版社,2017-02-11
[2]. [美]Phil Ballard著,《JavaScript入门经典 第6版》,人民邮电出版社,2016-06-01

Angular 开发 Angular 企业实战开发 1. 概述 Angular 是一个使用 HTML、CSS、TypeScript 构建客户端应用的框架,用来构建单页应用程序。 Angular 是一个重量级的框架,内部集成了大量开箱即用的功能模块。 Angular 为大型应用开发而设计,提供了干净且松耦合的代码组织方式,使应用程序整洁更易于维护。 Angular Angular 中文 Angular CLI 2. 架构预览 2.1 模块 Angular 应用是由一个个模块组成的,此模块指的不是ESModule,而是 Ng 阅读详情

相关推荐

关于【中孚计算机终端保密检查系统】的卸载

卸载中孚计算机终端保密检查系统

码农之路,向死而生 4万+

Angular10模块加载问题 Dynamic imports are only supported when the ‘--module‘ flag is set to ‘es2020‘, ‘es

Angular10模块加载问题 Dynamic imports are only supported when the '--module' flag is set to 'es2020', 'es

hjww_01的博客 946

TMP112/TMP102温度传感器驱动开发与嵌入式实战

数字温度传感器是嵌入式系统环境感知的核心器件,其通过I²C等标准总线实现高精度、低功耗测温。原理上依赖ΔΣ模数转换与二进制补码数据格式,结合寄存器配置实现模式控制、阈值报警与功耗管理。技术价值体现在±0.5°C级精度、1μA级静态电流及SOT-563超小封装带来的系统集成优势。广泛应用于工业MCU热监控、电池物联网终端、医疗电子温度补偿及汽车ECU板级测温等场景。本文围绕TMP112/TMP102展开,深入解析寄存器协议、硬件接口约束、HAL驱动分层设计、FreeRTOS任务调度及生产级校准方法,覆盖从芯片

weixin_35756690的博客 674

rollup打包时配置文件参数

0. rollup.config.js配置文件概要// rollup.config.js // can be an array (for multiple inputs) export default [ configObj ]; var configObj = { // core input options external, input, // conditionall...

问上 4886

【实战指南】OpenClaw 使用 Bird Skill 接入 X(Twitter)的终极省心方案:告别每次都要手动喂 Cookie 的痛苦

OpenClaw 使用 Bird Skill 接入 X(Twitter)的终极省心方案:告别每次都要手动喂 Cookie 的痛苦

hampeter的博客 1797

E2B Agent Runtime Sandbox 沙箱技术架构研究

本实现指南基于E2B的技术架构,提供了完整的基于Firecracker和Docker的Agent Runtime Sandbox后端服务实现方案。架构设计:参考E2B的分层架构,实现API层、管理层和虚拟化层Firecracker集成:深度集成Firecracker提供硬件级安全隔离完整功能:支持文件读写、shell执行、浏览器访问等核心功能生产就绪:提供Docker部署、监控、测试和安全配置可扩展性:设计支持水平扩展和高并发场景。

AI天才研究院 740

angular学习之路7-组件样式

1, 特殊的选择器 组件样式中有一些从影子(Shadow) DOM 样式范围领域(记录在W3C的CSS Scoping Module Level 1中) 引入的特殊选择器: :host 使用:host伪类选择器,用来选择组件宿主元素中的元素(相对于组件模板内部的元素)。 :host { display: block; border: 1px solid black; } :...

qq_24401529的博客 584

RK3588 部署 YOLO26 目标检测:从训练到 NPU 推理

如果做垂直场景(工业缺陷、农作物、特定零件),需要自己标数据。采集图像(500+ 张,覆盖不同光照/角度)→ 筛选(删除模糊/无目标)→ LabelImg 标注(选择 YOLO 格式)→ 划分(train:val:test = 7:2:1)labelImg├── train/├── val/├── test/YOLO26 在 RK3588 上的全流程是 PC 端训练 + ONNX 导出 → RKNN 转换(INT8 量化)→ 板端推理。

m0_71589036的博客 107

Angular2初探

Angular2是Google下一代MV*框架,用于构建复杂浏览器应用。Angular2给WEB或移动Apps带来了一揽子解决方案,从模板渲染到数据绑定,从Http服务到表单处理等等,总之,你想要的,Angular2基本上都已封装好了。   万事始于Hello World,不论Angular2怎么牛,咱们先得把官方的例子跑起来再说。这里使用基于webpack创建Angular应用。环境准备

风起云涌Hal的专栏 1002

116、影像质量主观评价方法论:标准场景与专家判读

本文探讨了影像质量主观评价的方法论,强调标准场景构建和专家判读体系的重要性。作者基于15年行业经验指出,仅靠客观指标无法保证观感质量,提出四类标准场景(灰阶、肤色、纹理、动态)的构建原则和四种专家判读维度(通透性、干净度、自然感、流程化)。文章揭示了主观评价中的常见误区,包括光源单一性、个人判读偏差、显示设备影响等,并建议建立多专家交叉验证机制和主观评价数据库。最后强调主观评价是可标准化的专业技术,需要将人眼感知转化为可追溯的技术参数。

sundong_81的博客 38

Android性能分析深度指南:Perfetto工具全面解析

本文深入探讨Android性能优化工具Perfetto的应用与实践。作为Google推出的新一代追踪系统,Perfetto整合了CPU调度、内存分配、电池状态等多维度分析功能,通过高性能数据处理和可视化界面帮助开发者定位性能瓶颈。文章系统介绍了Perfetto的架构原理、配置方法和核心功能,包括CPU性能分析、内存泄漏检测等关键技术。通过电商应用卡顿优化的实战案例,展示了如何利用数学建模(如帧时间公式$T_{\text{render}}\leq16.67\text{ms}$)指导性能调优。

郑伟强dev的专栏 144

初探angular2

Angular2 是一款开源JavaScript库,由Google维护,用来协助单一页面应用程序运行。 Angular2 是 Angular 1.x 的升级版本,性能上得到显著的提高,能很好的支持 Web 开发组件。 Angular2 发布于2016年9月份,它是基于ES6来开发的。 上手一个新的框架,了解的最开始的东西,都是最浅显的。 我的第一个应用如下 查看项目目录 实现项目过程如下 $ ...

weixin_30349597的博客 191

QML实现ListView的拖动排序

现有一种需求,就是用鼠标拖动某项,动态去改变某一项在ListView中显示的顺序位置,经过研究及实践实战,实现方式的核心代码如下: import QtQuick 2.4 import QtQuick.Controls 1.3 import QtQuick.Window 2.2 import QtQuick.Dialogs 1.2 Rectangle { width: 800 ...

草上爬的博客 7563

Angular2学习——初探

Angular2是Google公司推出的一个跨平台全终端的框架,目前在开发web和移动APP领域由着非比寻常的优势,这和它本身的架构设计脱不开干系的。这里给出Angular框架的七大核心概念,也是我们后面开发必须要搞清楚的内容。 下面我们从配置环境开始搭建一个Angular2工程,来揭开它神秘的面纱。 环境配置 和大多数前端框架一样,我们采用node环境来搭建Angular,

lylwanan的专栏 2319

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

初探angular之[$injector:modulerr]

学习angular的人, 想必对这个错误—$injector:modulerr都不陌生. 大多数遇到的错误生成原因, 应该是ui.route.js引入错误.但是其实有另一个原因也会导致这个错误.如下:window.onload = function(){ var app = angular.module('myApp', []); a

hezz and gonng 1万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

初探angular

前言   angular4.0目前已经发布了,angular是mvw框架,所以对其有一个简单的了解还是很有必要的。 目前angular有中文官网,且文档介绍也都是4.x的,但是为了了解其发展过程,我们先了解anguar1.x版本的,然后再了解4.x版本。   angular的特点: 跨平台开发。angular可以在网页、移动app、hybrid等多平台使用,angular所倡导的也是一套...

weixin_30737363的博客 295

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

发布自己的Angular2库初探

从去年年底开始使用ng2,遇到并解决或被虐了一些问题点,对其各种新特性与开发模式感觉还算舒服。还有的一个感想就是,要使用ng2还得先学习不少其他东西,比如TypeScript语法,比如ES6新特性,还有就是酷炫的npm平台。本文就将侧重点放到npm上来,看看npm平台给ng2带来的酷炫的帮助。 现在眼前有一个问题: 我写了一个自己很满意的ng2的通用小组件,现在想要在以后的其他项目中都使用它,

airfish20000的博客 322

初探angular的zonjs

在angular中有个神奇的东西,就是zonejs,它包含了angular的脏检测,异步追踪,等各种高大上的东西,那么zonjs究竟是什么玩意呢? Zone定义 它描述JavaScript执行环境,可以在异步任务之间进行持久性传递,它类似于Java中的TLS(thread-local storage: 线程本地存储)技术,zone.js则是将TLS引入到JavaScript语言中的实现...

weixin_30737363的博客 160

Angular(一):初探

一、组件 组件控制屏幕的一部分(视图) 组件的逻辑是定义在Class中,Class通过属性和方法与视图进行交互 @Component注解标记一个Class为Angular Component @Component中的templateUrls或者template将模版和组件联系起来 @Component中的styleUrls或者style将样式和组件联系起来 模版、样式和组件一起决定视图的外观和行为 创建项目: $ ng new ifine --skip-install --style scss --r

OneFine的技术博客 375

4 5区别 angular 和_初探Angular的更新机制

了解Angular组件的渲染及更新机制在Angular应用开发中能让我们的代码更高效及优化应用性能。今天我们就来聊聊Angular的更新机制。 开发过AngularJS应用的同学可能知道一个词,脏检测。尽管Angular与AngularJS的区别[语法上]天翻地覆,其核心思想还是没有多大变化的,Angular一直基于值检测的这个原则来更新组件及界面的。Angular的变更基于两个状态的对比,如果有...

weixin_39564527的博客 154

angular 初探_初探Google的Science Journal应用

angular 初探 谷歌最近宣布发布其《科学期刊》应用程序 ,该工具旨在“激发未来的创造者和科学家”。 您只需要开始使用一部Android手机即可,它将利用手机上的传感器并提供一个数字科学笔记本来记录您的发现。 该应用程序是免费的,计划于今年夏天晚些时候以开源形式发布。 谷歌已经在GitHub上发布了基于Arduino的传感器的微控制器固件 。 下载该应用程序后,您就可以开始进行实验并创...

cumj63710的博客 225

Angular初探(1-2)

开发环境搭建 node.js安装 百度(Google)搜索node.js 第一个为大多数开发者准备的稳定版,第二个是最新版(beta版),推荐第一个吧,防止一些莫名其妙的错误。疯狂下一步就可以了。 然后打开命令行工具输入:npm -v 若是正确安装会输出以下结果: 安装Angular CLI脚手架,帮助你更快速的开发 在刚才的命令行工具里输入:sudo npm install -g @...

清张 272
上一篇: 3D打印与3D扫描的未来在哪里
下一篇: MATLAB从入门到算法实践
极客范儿
极客范儿 新星创作者: 游戏开发技术领域 新星创作者: 游戏开发技术领域 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄12年 1万+粉丝 341原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极客范儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值