作为angular 4中的关键字?

作为angular 4中的关键字?,angular,let,Angular,Let,目前,我在学习Angular 4时引入了一个新关键字:as AS关键字–模板语法的一个新添加是AS关键字,用于简化为let语法 我刚刚实现了下面的代码 <div *ngIf="users | async as usersModel"> <h2>{{ usersModel.name }}</h2> <small>{{ usersModel.age }}</small> </div> {{usersModel.nam

目前,我在学习Angular 4时引入了一个新关键字:
as

AS关键字–模板语法的一个新添加是
AS关键字
,用于简化为
let
语法

我刚刚实现了下面的代码

<div *ngIf="users | async as usersModel">
    <h2>{{ usersModel.name }}</h2> <small>{{ usersModel.age }}</small>
</div>

{{usersModel.name}{{usersModel.age}
我无法从任何地方获得关于以下问题的详细信息

问题:
  • users
    object和
    userModel
    object*之间的区别是什么
  • 作为
    关键字的主要用途是什么
  • 模板中的
    as
    let
    之间有什么区别

您已经准备好了使用作为“关键字”的最佳示例

如果不使用它,代码的可读性会降低,并且看起来是这样的:

<div *ngIf="users | async as usersModel">
    <h2>{{ (users | async)?.name }}</h2> <small>{{ (users | async).age }}</small>
</div>
用于组件模板中的循环

<div *ngFor="let user of users">
使用
类似于:

let otherValue = SomePipe.transform(someValue);
你明白了吗


p、 学生:当然,我回答的最后一段只是心理捷径。如果您想知道ngFor和ngIf指令在“内部”是如何工作的,我建议您观看讲座。

公认的答案忽略了一个非常重要的一点:
async
订阅您的可观测值以获得解析值

想象一下这个场景:

组件:

user:Observable<IUser> = httpClient.get(url);
<div>
    <h2>{{ (users|async).name }}</h2> <small>{{ (users|async).age }}</small>
</div>
user:Observable=httpClient.get(url);
模板:

user:Observable<IUser> = httpClient.get(url);
<div>
    <h2>{{ (users|async).name }}</h2> <small>{{ (users|async).age }}</small>
</div>

{{(用户|异步).name}{{(用户|异步).age}
在上述情况下,由于您两次使用
async
httpClient
两次发出get请求

所以要回答你的问题:

Q
作为
关键字的主要用途是什么

A
as
关键字使您的代码看起来很好,但更重要的是它确保您对给定的可观察对象只使用一次async,正如我上面解释的那样

Q。模板中的
as
let
之间有什么区别

A
let
是一个Javascript关键字
as
关键字仅由角度模板编译器识别。两者在声明和初始化变量方面的工作相同。在某些地方,如在
*ngFor
中,两者都是可替换的。但是在
*ngIf
的情况下,它希望表达式中有一个布尔变量,并且
让x=true
不返回布尔值,因此只能将
用作

Q
用户
对象和
用户模型
对象之间的区别是什么


A。这已经得到了回答
users
对象是一个
Observable
userModel
对象是
用户的解析值
Observable

无关:angular4是angular的同义词,因此,仅添加
angular
标记就足以与@Faisal的无关:
angularjs
标记专门用于angular 1.x-您应该避免将其用于与更高版本相关的问题。我同意你们的观点。这是我的第一个问题。这就是我有点困惑的原因。哦,太好了!这里我还有一个问题。代码上的
符号有什么用途?它有空校验器吗?确切地说,它的意思是“如果不为空”,它被称为“elvis运算符”,很好!你能回答我的3个问题吗?我希望您可以。
let是一个javascript变量类型
。好的,很好!在angular 2中,我们在模板中使用了
let variablename
。我在问这件事。