Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Angular 5-模板错误:“类型‘AbstractControl’上不存在属性'length‘”

Angular 5-模板错误:“类型‘AbstractControl’上不存在属性'length‘”
EN

Stack Overflow用户
提问于 2018-03-04 12:44:06
回答 1查看 1.8K关注 0票数 1

当尝试使用ng build --prod --output-path <my_destination_path>命令构建我的Angular项目时,我得到的错误很少,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ERROR in src/app/products/product-edit/product-edit.component.html(190,10): : Property 'length' does not exist on type 'AbstractControl'.

模板product-edit.component.html:(错误在第一行)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div *ngIf="productForm.get('seasons').length>0; else infoTextNoSeasons" formArrayName="seasons">
              <div class="row" *ngFor="let seasonCtrl of productForm.get('seasons').controls; let i = index"
          [formGroupName]="i">
                <div [class.col-xs-10]="i!=0">
                  <div [class.row]="i!=0">
                          <div class="form-group col-sm-12">
                            <label class="sr-only" for="season">Season</label>
                            ...

既然应用程序使用ng serve运行得很好,我不明白为什么Angular不能构建它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-04 13:09:33

当使用--prod标志时,您使用的是AOT编译器。

与在浏览器中运行并将模板编译为JavaScript的即时编译器不同,AOT编译器在构建期间运行,将模板编译为TypeScript,然后将TypeScript编译为JavaScript。

因此应用了TypeScript类型检查,这允许在编译时而不是运行时发现模板中的错误。

错误消息告诉您出了什么问题:您试图从AbstractControl访问length属性,但AbstractControl没有这样的属性。length只存在于FormArray中,但TypeScript不能知道AbstractControl是FormArray。因此,在组件中添加一个使用类型断言并返回长度的方法。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49095520

复制
相关文章
[C#1] 5-属性
1.无参属性 当定义一个属性时,编译器会在生成的托管模块中产生一下3项: 1:get访问器方法,定义get时才有; 2:set访问器方法,定义set时才有; 3:关于属性的元数据,这项总是存在; 这写元数据信息中包括一些标记和属性类型,并有一个对get和set访问器方法的引用,仅仅为属性和它的访问器之间提供了一层关联关系。CLR本身并不使用它们,在运行时仅需要访问器方法即可。采用属性的代码不应有过复杂结构和太长的执行时间。应该相应的简短快速,对于简单的get和set,JIT编译器会将代码进行内联[inlin
blackheart
2018/01/19
4840
Angular 从入坑到挖坑 - 表单控件概览
angular 入坑记录的笔记第三篇,介绍 angular 中表单控件的相关概念,了解如何在 angular 中创建一个表单,以及如何针对表单控件进行数据校验。
程序员宇说
2020/03/19
19K0
length()方法,length属性和size()的方法的区别
length()方法,length属性和size()的方法的区别: length()方法是针对字符串来说的,要求一个字符串的长度就要用到它的length()方法; length属性是针对Java中的数组来说的,要求数组的长度可以用其length属性; java中的size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看! 这个例子来演示这两个方法和一个属性的用法: public static void main(String[] args) { String []list
10JQKA
2018/05/09
1.1K0
[C#6] 5-自动属性增强
0. 目录 C#6 新增特性目录 1. 老版本代码 1 internal class Person 2 { 3 public string Name { get; private set; } 4 public int Age { get; private set; } 5 6 public Person(string name,int age) 7 { 8 Name = name; 9 Age = age; 10
blackheart
2018/01/19
6210
[C#6] 5-自动属性增强
Fundebug:JavaScript插件支持过滤特定属性不存在的错误
摘要: Fundebug的JavaScript错误监控插件更新至0.4.0,支持过滤特定属性不存在的错误。
Fundebug
2020/01/02
9790
@Column中的length属性和@Size和@length区别
@Column:jpa注解,length属性标识数据库中字段长度,但是传入参数时不会校验,在往数据库中插入大于该长度的数据时,会报错
botkenni
2022/06/23
1.6K0
react native props上存在的属性,显示不存在
问题:类型“Readonly<{}> & Readonly<{ children?: ReactNode; }>”上不存在属性“navigation”。ts(2339) 解决方法: export d
windseek
2019/07/08
2.6K0
5-进军 angular1.x 服务
在 AngularJS 中,服务是一个函数或对象,可在你的 AngularJS 应用中使用。
西南_张家辉
2021/02/02
9700
Qt编写控件属性设计器5-属性中文
在上一篇文章中就提到过,使用qtpropertybrowser来加载属性,对应加载到的属性是英文的,也就是控件类中Q_PROPERTY描述的变量名称,如何变成中文或者其他语言显示呢?这个就需要研究qtpropertybrowser的源码了,通过研究发现,在QtObjectControllerPrivate类中负责对控件的属性名称进行遍历,然后发送到QtVariantPropertyManager进行统一的管理,那只要将这里的属性名称进行映射就行了,对应的英文到中文或者其他语言都可以,甚至枚举值的下拉框也可以在这里换成中文的。曾经想过用翻译的机制,后面发现路很漫长,而且最终还是需要映射转换,看过QtDesigner的源码,里边最终也是将翻译文件中的对应项转换成中文的。
feiyangqingyun
2019/09/14
1.7K0
Qt编写控件属性设计器5-属性中文
Angular 组件动态传入模板
比如 ng-zorro项目中的 BackTop回到顶部 组件就支持自定义模板。 默认时可以使用<nz-back-top></nz-back-top>。获得这个图标。
mafeifan
2018/12/28
1.9K0
angular2 错误集。
ERROR in AppModule is not an NgModule 由于本人也只是略懂angular2,很多东西还不是特别的明白,对于错误的理解还不够深刻,所以对于angular2的错误尽量用最简单的方式解决。 对于 ERROR in AppModule is not an NgModule 的错误,追根究底的话,应该是版本的问题,typescript的版本,具体是啥不清楚。 如果解决: 在自己的电脑上重新安装一个anguar2的新工程,ng new 工程名; 然后将旧app中的所有的内容copy到
杭州前端工程师
2018/06/15
7070
angular 模板常用语法
报错:Can’t bind to ‘colspan’ since it isn’t a known property of ‘td’. 原因:clspan是HTML属性而不是DOM属性 正确写法:
路过君
2020/06/19
1.1K0
Angular 2 架构(上)
图中的模板 (Templates)是由 Angular 扩展的 HTML 语法组成,组件 (Components)类用来管理这些模板,应用逻辑部分通过服务 (Services)来完成,然后在模块中打包服务与组件,最后通过引导根模块来启动应用。
陈不成i
2021/07/26
1.4K0
Angular 自定义属性指令
本文将使用 UltimateAngular/angular-pro-src 中的示例,来一步步介绍自定义属性指令的相关知识。在正式开发前,我们可以先看一下,最终效果 Stackblitz - Custom-Attribute-Directive。
阿宝哥
2019/11/05
2.1K0
模板(上)——(函数模板)
C++有两种模板机制:函数模板和类模板。模板中的参数也称为类属参数。 模板、模板类、对象和模板函数之间的关系:
海盗船长
2020/08/27
1.6K0
Angular 2 表单(上)
利用 Angular 模板,我们可以创建各种类型表单,例如:登录表单,联系人表单,商品详情表单等,而且我们也为这些表单的字段添加数据校验。
陈不成i
2021/07/26
1.5K0
C++11:模板实现opencl向量类型的简单运算符重载及length,distance函数
版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/51121642
10km
2019/05/25
1.7K0
【Angular6+】属性及样式绑定
借助 CSS 类绑定,可以从元素的 class attribute 上添加和移除 CSS 类名。
CloudCat
2019/05/26
1K0
点击加载更多

相似问题

Angular AOT编译错误:类型'AbstractControl‘上不存在属性'length’

22

Angular2:错误-属性'updateValue‘在'AbstractControl’类型上不存在。

12

Angular 4:类型"AbstractControl“上不存在属性"push”和"controls“

10

生成错误:“AbstractControl”类型上不存在属性“控件”

14

类型‘AbstractControl’上不存在属性'controls‘。“

129
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文