Angular : 绑定, 参数传递, 路由
如何把jquery导入angular
npm install jquery --save
npm install @type/jquery --save-dev
"node_modules/zui/dist/lib/jquery/jquery.js",
"node_modules/jquery/dist/jquery.js",
"node_modules/zui/dist/js/zui.min.js",
"node_modules/zui/dist/lib/dashboard/zui.dashboard.min.js",
"node_modules/zui/dist/lib/datetimepicker/datetimepicker.min.js"
-------------------------------------------------------------------------------------
angular 循环语法 *ngFor="let *** of ***"
-------------------------------------------------------------------------------------
插值绑定 {{ zhangsan.name }}
属性绑定 [href]="url" 可以用这种特性,把父组件的属性传递给子组件,但是子组件的属性必须要用@Input()装饰
DOM属性绑定,angular所有绑定都是绑定的dom属性,通过插值绑定和属性绑定(两个是一个东西,都是改变dom属性,最后插值绑定会转换为属性绑定)来改变dom属性
-------------------------------------------------------------------------------------
HTML属性绑定:
基本html属性绑定:[attr.colspan]="tableColspan"
css类绑定: [class]="xxx" 这样的话xxx类会完全替换掉原class的值.
css类绑定2: [class.xxx]="yyy" 如果yyy(布尔值)为true的话,会添加xxx类.false不会添加
css类绑定3: [ngClass]="{ aaa:isA, bbb:isB }" aaa bbb 为类的名字,是否显示由isA isB 表达式控制.
样式绑定 [style.color]="xxx?'red':'green'" 如果xxx是true,那么会显示red,false会显示green
样式绑定2 [ngStyle]="{ 'font-style':xxx?'italic':'norma;' }" 和上面差不多,不过是一个对象的形式
事件绑定 (click)="xxx()" 点击事件会调用 xxx方法.小括号代表是事件绑定语法
双向绑定 [(ngModel)]="name" view里面html元素name变化会导致controll里面绑定的
-------------------------------------------------------------------------------------
路由声明 {path:'', component: HomeComponent} 表示根目录导航到HomeComponent组件
<router-outlet></router-outlet> 路由的组件会展示在这个标签后面
在a标签中使用路由: [routerLink]="['/']" 这个a标签会让路由path为 "" 的组件展示在上面那个标签后面.[routerLink]="['./']"是导航到子路由的书写方式
在方法中使用router.navigate(["/product"])这种方式来控制路由跳转,router对象需要写在构造函数里面
如果访问不存在的路由,那么可以用 {path: '**', component: Page404Component} 这种方法导航到一个404组件.
-------------------------------------------------------------------------------------
参数传递1 : <a href="" [routerLink]="['/product']" [queryParams]="{id: 1}"> 用queryParam属性传递参数
参数接收1 : private routerInfo: ActivatedRoute 在组件控制器函数的构造函数中定义一个ActivatedRoute 对象
然后用 this.productId = this.routerInfo.snapshot.queryParams["id"];这种方式接收
参数传递2 : 需要把route path改为 path: 'product/:id' 这种形式, 传递时用[routerLink]="['/product', 1]"
参数接收2 : 把上边的 queryParams["id"] 改为params["id"]
-------------------------------------------------------------------------------------
参数订阅 : 如果在同一个组件里面路由(从自身路由到自身),那么snapshot方式就不太合适,因为传递的参数不同的话快照是不会改变的,可以用参数订阅的方式 this.routerInfo.params.subscribe((params: Params) => this.productId = params["id"]);
重定向路由 : {path: '', redirectTo: '/home', pathMatch: 'full'}
子路由 : 在任何一个路由的对象中加上 children属性,是一个数组,里面可以定义子路由
辅助路由: 定义 <router-outlet name="aux"></router-outlet>
路由: {path: 'chat', component: ChatComponent, outlet: 'aux'}
路由链接 : <a href="" [routerLink]="[{outlets: {aux: 'chat'}}]">开始聊天</a>
<a [routerLink]="[{outlets: {aux: null}}]">结束聊天</a>
辅助路由为了处理兄弟组件之间的关系,如两个组件同时显示但是不能互相干扰.
<a [routerLink]="[{outlets: {primary: 'home', aux: 'chat'}}]">开始聊天</a> 也可以用primary显式指定点击链接之后主路由插座需要显式的组件
路由守卫 : 继承CanActivate接口,重写canActivate方法,如果返回false,那么不会展示被守卫的路由组件
路由里面加属性 canActivate: [继承CanActivate接口的类]
providers: [继承CanActivate接口的类]s
CanDeactivate 离开路由时, resolve 组件被加载过程中,同理
resolve属性里面不是数组而是对象.如resolve: {product: ProductResolve}
-------------------------------------------------------------------------------------
创建一个自定义管道 ng g pipe /pipe/xxx 使用管道 {{ xxx | yyy:'zzz' }} yyy为管道名 zzz为可选参数
Angular : 绑定, 参数传递, 路由的更多相关文章
- angular.js的路由和模板在asp.net mvc 中的使用
angular.js的路由和模板在asp.net mvc 中的使用 我们知道angular.js是基于mvc 的一款优秀js框架,它也有一套自己的路由机制,和asp.net mvc 路由不太一样.as ...
- Angular routing生成路由和路由的跳转
Angular routing生成路由和路由的跳转 什么是路由 路由的目的是可以让根组件按照不同的需求动态加载不同的组件. 根据不同地址,加载不同组件,实现单页面应用. Angular 命令创建一个配 ...
- Angular学习笔记—路由(转载)
创建路由 1.首先安装 Angular Router.你可以通过运行以下任一操作来执行此操作: yarn add @angular/router # OR npm i --save @angular/ ...
- Angular 监听路由变化
var app = angular.module('Mywind',['ui.router']) //Angular 监听路由变化 function run($ionicPlatform, $loca ...
- angular 8 配置路由
一.生成路由文件 按照惯例,有一个独立模块来配置相关路由,这个模块类的名字叫做AppRoutingModule,位于src/app下的app-routing.module.ts文件中. 使用CLI生成 ...
- angular 强制刷新路由,重新加载路由
angular js ui-route 在使用时默认不是不会刷新路由的,所有有些时候我们需要主动刷新路由. 主动刷新方法是: <a ui-sref="profitManage" ...
- Angular绑定数据时转义html标签
AngularJs在绑定数据时默认会以文本的形式出现在页面上,比如我现在有这样一段代码 <div ng-controller="testCtrl">{{data}}&l ...
- angular.js之路由的选择
在一个单页面中,我们可以添加多个模块,使得网页只在需要的时候加载这个模块.模块的切换大致上可以代替网页的切换,于是,我们便可以通过模块的切换实现网页的切换,这个切换是按需加载的. 乍一看非常普通的东西 ...
- 使用Angular CLI生成路由
第一篇文章是: "使用angular cli生成angular5项目" : http://www.cnblogs.com/cgzl/p/8594571.html 第二篇文章是: & ...
随机推荐
- Java设计模式—访问者模式
原文地址:http://www.cnblogs.com/java-my-life/archive/2012/06/14/2545381.html 总结的太棒啦,导致自己看了都不想总结了...... 在 ...
- 利用actionscript访问wfs服务
以后整理……</> private function search_clickHandler():void{ op="search"; var urlLoader:UR ...
- 01_JMS概述
[以前的通信技术的局限性] 在大规模和复杂的分布式系统中,传统的RMI.DCOM等中间件通信技术逐渐有了局限性,如下: 1.同步通信:客户发出调用后,必须等待服务对象完成处理并返回结果才能继续执行. ...
- cordova 开发 ios app 简要流程
1 安装node.js环境 官网: http://nodejs.org/ 点击[install],会下载mac的安装包.正常安装即可 2 安装cordova:npm install -g cordo ...
- stopPropagation()阻止事件向父容器传递
topPropagation()函数用于阻止当前事件在DOM树上冒泡. 根据DOM事件流机制,在元素上触发的大多数事件都会冒泡传递到该元素的所有祖辈元素上,如果这些祖辈元素上也绑定了相应的事件处理函数 ...
- JavaScript专题
1. 在ajax的任何回调方法中,比如success回调,使用return,将会无效 2. //todo
- 如何删除Windows 10中的内存转储文件
内存转储文件是由Windows产生的.以下情况下可能产生内存转储文件: 计算机崩溃蓝屏 内存错误 硬件问题 内存转储文件包含计算机系统崩溃时的详细的参数副本.用于帮助识别导致系统崩溃的原因.Windo ...
- 长大DeepMind第一次团队作业
1.队名 长大DeepMind 2.队员风采 学号 姓名 擅长的技术 编程的兴趣点 希望承担的角色 一句话宣言 B20150304508 晏司举 JAVA,ssm框架,MySQL数据库 JAVA后台服 ...
- Linux使用sz、rz命令下载、上传文件
1.安装服务 yum -y install lrzsz 2.上传命令:rz 使用rz命令,会调用系统的资源管理器,选择文件进行上传即可.上传的文件默认保存linux当前所在目录 3.下载命令:sz 根 ...
- ASP.NET SignalR 与LayIM配合,轻松实现网站客服聊天室(六)之 好友申请、同意、拒绝
不知道距离上一篇多久没有写了,可能是因为忙(lan)的关系吧.废话不多说,今天要介绍的不算什么新知识,主要是逻辑上的一些东西.什么逻辑呢,加好友,发送好友申请,对方审批通过,拒绝.(很遗憾,对方审批通 ...