angular - 我的第一个应用程序的 Angular 部署到生产失败
问题描述
嗨,我是 Angular 的新手,并创建了一个简单的计算器应用程序,您可以在此处看到:
https://stackblitz.com/edit/angular-ibplpz
该应用程序大部分工作正常..但是当我尝试运行“ng build --prod”时,我得到了 cli 中出现的错误分配:
src/app/calculator/calculator.component.html(6,64) 中的错误::“allClear”类型的参数不可分配给“Operator”类型的参数。src/app/calculator/calculator.component.html(7,64): : '"clear"' 类型的参数不可分配给 'Operator' 类型的参数。src/app/calculator/calculator.component.html(9,67): : '"divide"' 类型的参数不可分配给 'Operator' 类型的参数。src/app/calculator/calculator.component.html(13,67): : '"multiply"' 类型的参数不能分配给 'Operator' 类型的参数。src/app/calculator/calculator.component.html(17,67): : '"minus"' 类型的参数不可分配给 'Operator' 类型的参数。源代码/应用程序/计算器/计算器。component.html(21,11): : '"add"' 类型的参数不能分配给 'Operator' 类型的参数。src/app/calculator/calculator.component.html(24,38): : '"dot"' 类型的参数不能分配给 'Operator' 类型的参数。src/app/calculator/calculator.component.html(25,11): : '"equal"' 类型的参数不可分配给'Operator' 类型的参数。
还请告知我想知道是否应该重组应用程序的一般结构以使其更好地成为“Angular”最佳部分。
解决方案
即使Operator
您得到的错误中包含所有值,它仍然不是同一类型。我更新了你的闪电战
您应该像这样定义一个类属性
operators = Operator;
在您的 html 中,将字符串参数更改为operators.allClear
等operators.add
。
例如,
改变
(click)="clickOperator('allClear')"
至
(click)="clickOperator(operators.allClear)"
通过这种方式,angular 不会抱怨类型不匹配。此外,您可以轻松地重构代码并更改枚举值。
推荐阅读
- python - 如何使用 cron 作业将事件插入谷歌日历?
- oracle - 在 Liquibase 中,如何向现有复合主键添加新列/字段
- python - 插入顺序模型层失败
- java - ANTLR4 在访客不工作时调用下一步
- javascript - 如何将计数传递给动态 json 对象
- google-apps-script - 获取所有选项卡的列表并排除活动用户无法编辑的选项卡
- asp.net-mvc - ASP.NET Core 3.1 MVC 返回 AmbiguousMatchException,服务器错误 500
- c - 当 K&R 第 6 章中的 strdup() 没有分配 sizeof(char) * strlen(s) 位时,它是如何工作的?
- java - java中魔方中的完整缺失元素
- algorithm - 多重流行和摊销