Html Angular 4 NG构建--带有对话框的Prod错误

Html Angular 4 NG构建--带有对话框的Prod错误,html,angular,typescript,Html,Angular,Typescript,我在尝试运行NG Build--Prod(当然是针对AoT编译)时遇到以下错误 这些错误只有在尝试执行NG Build--Prod时才会抛出。非-Prod构建正在成功完成,我知道AoT编译的方式有所不同,但我不确定我需要做什么来纠正这种情况,因为我查找的内容似乎没有帮助 相关文件: Angular 4字体脚本: @Component({ selector: 'add-notification-one-dialog', templateUrl: './add.notificatio

我在尝试运行NG Build--Prod(当然是针对AoT编译)时遇到以下错误

这些错误只有在尝试执行NG Build--Prod时才会抛出。非-Prod构建正在成功完成,我知道AoT编译的方式有所不同,但我不确定我需要做什么来纠正这种情况,因为我查找的内容似乎没有帮助

相关文件:

Angular 4字体脚本:

@Component({
    selector: 'add-notification-one-dialog',
    templateUrl: './add.notification.one.dialog.component.html',
    styleUrls: ['./dialog.component.css']
})
export class AddNotificationOneDialog {
    constructor(
        public dialogRef: MdDialogRef<AddNotificationOneDialog>,
        private snackBar: MdSnackBar

    ) { }

    // opens a dialog to warn the user they didn't input correctly
    openSnackBar(message) {
        this.snackBar.open(message, "Close", { duration: 3000 });
    }

    // function called on press of the submit button which checks regular expression compliance 
    pressSubmit(newAdmin: any): void {
        var regEx = new RegExp("[^a-zA-z0-9]");
        var testedInput = regEx.test(newAdmin);

        if (testedInput !== true) {
            this.dialogRef.close(newAdmin)
        }
        else {
            this.openSnackBar("Please enter only A-Z and 0-9");
        }
    }
}
@组件({
选择器:“添加通知一个对话框”,
templateUrl:'./add.notification.one.dialog.component.html',
样式URL:['./dialog.component.css']
})
导出类AddNotificationOneDialog{
建造师(
公共dialogRef:MdDialogRef,
专用snackBar:MdSnackBar
) { }
//打开一个对话框,警告用户输入不正确
openSnackBar(消息){
this.snackBar.open(消息“Close”{duration:3000});
}
//函数在按下submit按钮时调用,该按钮检查正则表达式的符合性
按提交(新管理员:任何):作废{
var regEx=新的RegExp(“[^a-zA-z0-9]”);
var testedInput=regEx.test(newAdmin);
如果(testedInput!==真){
this.dialogRef.close(newAdmin)
}
否则{
这个.openSnackBar(“请只输入A-Z和0-9”);
}
}
}
HTML:


是否添加新管理员?
提交
取消

提前谢谢你

您忘记声明newAdmin变量:

export class AddNotificationOneDialog {

  public newAdmin: any;

  constructor(...){ }
  ...
}

您忘记声明您的newAdmin变量:

export class AddNotificationOneDialog {

  public newAdmin: any;

  constructor(...){ }
  ...
}

您没有复制正确的文件。请给我们add.field.dialog.component.html。我编辑了它,我想把上面的错误放进去,它们都是相关的,所以我只选择了给定错误的一部分。我知道错误是什么,以及如何修复它。请给我们add.field.dialog.component.html。否则我就修不好了。这是一个简单的AOT错误。您正在使用参数
myFunction(myVar)
调用函数,但函数的声明没有任何参数
void myFunction()
,反之亦然。因此AOT编译将中断并抛出错误。我更新了错误,但所有对话框都抛出错误,并且结构都相同。我发布了答案。如果它修复了错误,不要忘记接受它。为了防止此类错误,Visual Studio代码IDE具有Angular团队构建的Angular语言服务扩展,用于抛出AOT诊断消息。您没有复制正确的文件。请给我们add.field.dialog.component.html。我编辑了它,我想把上面的错误放进去,它们都是相关的,所以我只选择了给定错误的一部分。我知道错误是什么,以及如何修复它。请给我们add.field.dialog.component.html。否则我就修不好了。这是一个简单的AOT错误。您正在使用参数
myFunction(myVar)
调用函数,但函数的声明没有任何参数
void myFunction()
,反之亦然。因此AOT编译将中断并抛出错误。我更新了错误,但所有对话框都抛出错误,并且结构都相同。我发布了答案。如果它修复了错误,不要忘记接受它。为了防止此类错误,VisualStudioCodeIDE有一个Angular语言服务扩展,由Angular团队构建,用于抛出AOT诊断消息。是的,这就是错误所在。我没有意识到这是必要的,因为在构造函数中设置类型对于正常的构建是有效的。是的,这就是错误。我没有意识到这是必要的,因为仅仅在构造函数中设置类型就可以正常构建。
export class AddNotificationOneDialog {

  public newAdmin: any;

  constructor(...){ }
  ...
}