首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Angular 显示英雄列表

Angular 会把所点击的  的 hero 对象传给它,这个 hero 也就是前面 *ngFor 表达式中定义的那个。...打开浏览器的开发者工具,它的控制台中显示出如下错误信息: HeroesComponent.html:3 ERROR TypeError: Cannot read property 'name' of undefined...英雄们显示列表中,并且所点英雄的详情也显示了页面的下方。 修复 - 使用 *ngIf 来隐藏空白的细节 该组件应该只有当 selectedHero 存在才显示所选英雄的详情。...所以你只要在用户点击一个  把 .selected 类应用到该元素就可以了。 Angular 的 CSS 类绑定机制让根据条件添加或移除一个 CSS 类变得很容易。...你使用 *ngFor 显示了一个列表。 你使用 *ngIf 来根据条件包含或排除了一段 HTML。 你可以用 class 绑定来切换 CSS 的样式类。

4.4K70

Angular 显示英雄列表

Angular 会把所点击的  的 hero 对象传给它,这个 hero 也就是前面 *ngFor 表达式中定义的那个。...打开浏览器的开发者工具,它的控制台中显示出如下错误信息: HeroesComponent.html:3 ERROR TypeError: Cannot read property 'name' of undefined...英雄们显示列表中,并且所点英雄的详情也显示了页面的下方。 修复 - 使用 *ngIf 来隐藏空白的细节 该组件应该只有当 selectedHero 存在才显示所选英雄的详情。...所以你只要在用户点击一个  把 .selected 类应用到该元素就可以了。 Angular 的 CSS 类绑定机制让根据条件添加或移除一个 CSS 类变得很容易。...你使用 *ngFor 显示了一个列表。 你使用 *ngIf 来根据条件包含或排除了一段 HTML。 你可以用 class 绑定来切换 CSS 的样式类。

4K30

Angular 从入坑到挖坑 - 表单控件概览

name 属性则是 angular 用来注册控件的 key,所以表单中使用 ngModel 进行双向数据绑定时,必须要添加 name 属性 4.2.2、跟踪表单控件的状态 表单中使用 ngModel...,从而生成错误信息列表 进行用户输入数据有效性验证控件通过添加一个模板引用变量来暴露出 ngModel,从而在模板中获取到指定控件的状态信息,之后就可以通过获取错误信息列表来进行反馈 <div...4.3.2、通过 FomGroup 组合多个控件 一个表单不可能只有一个控件,通过组件中构造 FormGroup 实例来完成对于多个表单控件的统一管理 使用 FormGroup ,同样组件中定义一个属性用来承载控件组实例...,返回 null,当数据无效,则会返回一个对象信息,这里的 nameinvalid 就是我们模板中获取到的错误信息的 key 值 <label...模板驱动表单中,因为不是直接使用的 FormControl 实例,因此这里应该在模板添加一个自定义的指令来完成对于控件数据的校验 使用 angular cli 创建一个用来进行表单验证的指令 ng

18.9K20

AngularDart4.0 英雄之旅-教程-05多组件 顶

从哪里开始 开始使用本页面之前,请确认您之前“Tour of Heroes”中拥有以下结构。 如果没有,请返回前面的页面。 ?...否则,Angular拒绝绑定并抛出一个错误。...如果您在浏览器开发工具的控制台中查找错误。 没有错误。 就好像Angular忽略了新的标签。 那是因为它忽略了新的标签。 指令列表 浏览器会忽略不能识别的HTML标签和属性。...Angular也是如此。 你已经导入了HeroDetailComponent,并且你已经模板中使用了,但是你还没有将它告诉给Angular。...应用程序设计更改 和以前一样,每当用户点击一个英雄名字,英雄详情就会出现在英雄列表的下方。 但是现在HeroDetailComponent正在呈现这些细节。

1.8K10

AngularDart4.0 英雄之旅-教程-04明细 顶

Angular无法显示null selectedHero的属性并抛出以下错误浏览器的控制台中可见: EXCEPTION: TypeError: Cannot read property 'name...刷新浏览器,该应用程序不再失败,名称列表再次显示浏览器中。 当没有选定的英雄ngIf指令从DOM中移除英雄详情HTML。 没有英雄细节元素或绑定担心。...结构指令页面和模板语法页面的内置指令部分阅读有关ngIf和ngFor的更多信息。 格式化选中hero 当选择的英雄细节显示列表下方,很难列表中识别选定的英雄。...模板中,将以下绑定添加到标记中: [class.selected]="hero === selectedHero" 当表达式(hero === selectedHero)为trueAngular...当表达式为falseAngular删除选定的类。 ===运算符测试给定的对象是否相同。 模板语法指南中阅读有关[class]绑定的更多信息。

3K30

AngularDart 4.0 高级-结构指令 顶

NgIf案例研究 NgIf是最简单的结构指令,也是最容易理解的。 它需要一个布尔表达式并使DOM的整个块出现或消失。...当你编写自己的结构指令,可以使用这些微观语法机制。 研究NgIf和NgFor的源代码是了解更多信息的好方法。 模板输入变量 模板输入变量是一个变量,其值可以模板的单个实例中引用。...满足Angular模板中的类似需求。 编写一个结构指令 本节中,您将编写一个与NgIf相反的UnlessDirective结构指令。 NgIf条件为true显示模板内容。... 当条件为假出现顶部(A)段落并且底部(B)段落消失。 条件为真,顶部(A)段被删除,底部(B)段出现。 ? 概要 您可以尝试实例中查看本指南的源代码(查看源代码)。...没有合适的宿主元素使用作为分组元素。 Angular将星号(*)语法解析为。 NgIf,NgFor和NgSwitch内置指令如何工作。

16K20

浅谈Angular

创建项目: 要想使用 npm 来安装 CLI,请打开终端/控制台窗口,并输入下列命令: npm install -g @angular/cli ②创建工作区和初始应用:ng new 文件名 ③启动开发服务器...里,默认的数据绑定是单向的,即Model向View 如果要实现双向绑定,需要使用到ngModel指令 语法: [(ngModel)]='值' ***直接写指令,angularJS里会报错...ng-show本质设置元素的display值为none,只是设置样式,DOM结构还在,而*ngIf是真正意义的从DOM结构中移除结构型指令 *ngIf--控制元素的显隐性 ?...ng-show本质设置元素的display值为none,只是设置样式,DOM结构还在,而*ngIf是真正意义的从DOM结构中移除 *ngFor--动态创建DOM结构 ngSwitch--通过匹配case...来控制元素的显隐 自定义指令里获取指令添加到其上面的元素,需要依赖注入ElementRef服务 如果自定义指令想要接收从外部传入的值,需要使用@Input装饰器\.

4.4K10

Angular 快速学习笔记(1) -- 官方示例要点

(hero)"> *ngIf 条件判断 条件css类 [class.selected]="hero === selectedHero" 组件的输入参数...Angular CLI 命令 ng generate service 会通过给 @Injectable 装饰器添加元数据的形式 providedIn: 'root', 当你顶层提供该服务Angular...异步处理可以使用回调函数,可以返回 Promise(承诺),也可以返回 Observable(可观察对象) b. angular使用了Rxjs,因此使用Observable,Observable 是...添加路由 ,路由定义 会告诉路由器,当用户点击某个链接或者浏览器地址栏中输入某个 URL ,要显示哪个视图,因此路由包含两个属性: i. path:一个用于匹配浏览器地址栏中 URL 的字符串...return of(result as T); }; } 控制台中汇报了这个错误之后,这个处理器会汇报一个用户友好的消息,并给应用返回一个安全值,让它继续工作,可以使用

3.6K00

Angular 快速学习笔记(1) -- 官方示例要点

(hero)"> *ngIf 条件判断 条件css类 [class.selected]="hero === selectedHero" 组件的输入参数...Angular CLI 命令 ng generate service 会通过给 @Injectable 装饰器添加元数据的形式 providedIn: 'root', 当你顶层提供该服务Angular...异步处理可以使用回调函数,可以返回 Promise(承诺),也可以返回 Observable(可观察对象) b. angular使用了Rxjs,因此使用Observable,Observable 是...添加路由 ,路由定义 会告诉路由器,当用户点击某个链接或者浏览器地址栏中输入某个 URL ,要显示哪个视图,因此路由包含两个属性: i. path:一个用于匹配浏览器地址栏中 URL 的字符串...return of(result as T); }; } 控制台中汇报了这个错误之后,这个处理器会汇报一个用户友好的消息,并给应用返回一个安全值,让它继续工作,可以使用

3.7K50

AngularDart4.0 指南-体系结构概述 顶

您可以通过使用Angular的标记组合HTML 模板,编写组件类来管理这些模板,服务中添加应用程序逻辑以及模块中装入组件和服务来编写Angular应用程序。 然后,通过引导根模块启动应用程序。...没有一个框架的痕迹,没有Angular的特定代码。 实际,HeroListComponent实际只是一个类。 直到你告诉Angular它是一个组件。...= null"> * ngFor告诉Angular英雄列表中标出每个英雄的一个。 * ngIf仅在选择的英雄存在才包含HeroDetail组件。...Dart中,唯一值为true的是布尔值true; 所有其他值是错误的。 JavaScript和TypeScript相反,将诸如1和大多数非空对象的值视为true。...出于这个原因,这个应用程序的JavaScript和TypeScript版本可以使用selectedHero作为* ngIf表达式的值。 Dart版本必须使用布尔运算符!=替换。

7.9K30

Angular2 之 结构型指令几个概念

我们经常看到的内置的结构型指令有:ngIf、ngSwitch、ngFor。 下面我们着重介绍ngIfNgIf案例分析 该指令接受一个布尔值,并据此让一整块DOM树出现或者消失。... 注意:这里是出现或者消失,并不是隐藏。 隐藏元素的利弊 当我们隐藏元素,组件的行为还在继续。 它仍然附加子啊它所属于的DOM元素,它仍然监听事件。...弊 如果我们很快再次使用这个组件的时候,重建组件的代价是非常大的。 当ngIf重新变成true的时候,angular会重新创建该组件及其子树。angular会重新运行每个组件的初始化逻辑。...总结 基于上面的利弊分析,无论是我们使用内置的指令还是使用自定的指令的时候,我们应该自己分析提添加、移除元素以及创建和销毁组件的后果。...标签 结构型指令,比如ngIf使用HTML 5的template标签 完成它们的“魔法”。 控制Template标签内DOM添加与显示,模板级别使用的。

3K20

AngularDart4.0 指南- 模板语法二 顶

如果名称未能匹配已知指令的元素事件或输出属性,则Angular会报告“未知指令”错误。 $event和事件处理语句 事件绑定中,Angular为目标事件设置了一个事件处理程序。...警惕隐藏大型组件树; NgIf可能是更安全的选择。 警惕null ngIf指令通常用于防止null。 显示/隐藏是无用的。 如果嵌套表达式试图访问null属性,Angular会抛出一个错误。...这里我们看到NgIf守护两个。 currentHero名称仅在有currentHero出现。 nullHero从不显示。 Fax 输入和输出属性(@Input和@Output) 到目前为止,该页面主要集中绑定到模板表达式中的组件成员以及出现在绑定声明右侧的语句...想象一下,诸如a.b.c.d这样的长属性路径中的某个地方防止空值。 Angular安全导航操作符(?.)是一种更为流畅和方便的方法来防止属性路径中出现空。表达式达到第一个空值时会被释放。

29.9K20

理解Angular中*ngIf指令中加问号和不加问号的区别

Angular开发中,我们经常使用ngIf指令来根据条件动态渲染或移除元素。然而,一些情况下,我们可能需要处理一些可能为空的对象属性。这时,就需要了解ngIf指令中使用加问号和不加问号的区别。...是一个条件操作符,用于保证访问对象属性避免空指针异常。...然而,当我们使用obj2作为pickModel的值,情况就会有所不同。...综上所述,加上问号的条件操作符能够访问对象属性避免空指针异常,当对象属性不存在不会报错。这样的处理方式对于处理动态数据或异步数据非常有用,能够提高代码的稳定性和可靠性。...总结一下,加问号和不加问号Angular使用*ngIf指令的区别主要在于处理对象属性是否为空的表现。我们可以根据具体的业务需求来选择合适的方式,确保代码的可靠性和稳定性。

25900

过渡到 Angular 17 的新控制流语法

传统指令与Angular 17的控制流语法对比让我们使用一些示例来比较传统指令和Angular 17的控制流语法:*ngIf指令 vs @if控制块Before(传统 *ngIf):<div *ngIf.../src/component-to-be-migrated转义 {、} 和 @ 字符:模板中,现有的 {、} 和 @ 字符作为文本字符使用时需要进行转义。...手动细化:手动优化复杂模板,以最佳方式使用新语法。例如,某些情况下,您可以使用 @defer 块来延迟加载内容。向后兼容性和性能Angular 17允许您在应用程序中同时使用新旧语法。...就性能而言,值得一提的是,Angular团队观察到使用新语法达到了高达90%的速度性能改进。...正如我们自己的项目中所经历的,这些变化不仅是外观的改变,而且是功能上的改变,提升了我们使用Angular的方式。我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

54620
领券