作为角4的关键字?
目前我正在学习Angular 4引入了一个新的关键字:as.
AS关键字 – 模板语法的新增功能是as关键字用于简化let语法. 我刚刚在下面的代码中实现了这个. <div *ngIf="users | async as usersModel"> <h2>{{ usersModel.name }}</h2> <small>{{ usersModel.age }}</small> </div> 对于以下问题,我无法从任何地方获得更多细节. 问题: > users对象和userModel对象*之间有什么区别? 解决方法
您已准备好使用“as”关键字的最佳示例.
如果您没有使用它,您的代码将不太可读,它看起来像这样: <div *ngIf="users | async as usersModel"> <h2>{{ (users | async)?.name }}</h2> <small>{{ (users | async).age }}</small> </div> 在此示例中,用户是Observable对象.感谢kayword,您可以在Observable对象上分配async管道的userModel结果. F.E. 如果用户是用户:Observable< User> ;;那么usersModel是用户变量上的异步管道的结果,所以它就像usersModel:User对象. 关于as和let的问题@EDIT 我不能告诉你as和let之间有什么区别,因为这是两个不同的东西. let是一个javascript变量类型,表示:
和Angular关键字一样,可以将方法/管道的结果分配给其他变量. 这是你的第一篇文章,所以我提醒一下:Angular不是编程语言,而是JavaScript框架. Angular中的大多数东西都与纯JS或TS有关. Angular中的for循环声明是来自ECMAScript6,f.e的数组循环声明的副本. for循环(ECMAScript6) let iterable = [10,20,30]; for (let value of iterable) { console.log(value); } for组件模板中的循环 <div *ngFor="let user of users"> 关键字as是对方法的变量结果的赋值的快捷方式,f.e为某些管道 some.pipe.ts @Pipe({ name: 'somePipe' }) export class SomePipe { transform(value: number): number { return number * 2; } } 使用< div * ngIf =“someValue | somePipe as otherValue”>就好像: let otherValue = SomePipe.transform(someValue); 你懂了? p.s:我的回答中的最后一段当然只是心理捷径.如果你想知道,ngFor和ngIf指令如何在“内部”工作,我建议你观看Nir Kaufman – Demystified Angular Directives讲座. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |