Angular 8应用程序在使用router.navigate时无法检索表单字段值

用户名

我有一个使用路由和模板驱动表单的Angular 8应用程序。

我在component.html中有一个简单的表单

<form (ngSubmit)="onSubmit(serviceForm)" #serviceForm="ngForm">
  <input type="text" name="endpoint" ngModel>
  <button class="btn btn-success" type="submit">Submit</button>
</form>

component.ts中的处理程序

onSubmit(serviceForm:NgForm){
  console.log(serviceForm);
  this.router.navigate(['/view-service']);
 }

当我在console.log()之后调用导航语句时,ngForm.value中没有“端点”。这是console.log的输出:

NgForm {提交:true,_directives:Array(1),ngSubmit:EventEmitter,form:FormGroup}
formDirective:(...)
控件:(...)
路径:(...)
控件:(...)
值:对象
__proto__:对象

有效:(...)
无效:(...)
待定:(...)
禁用:(...)
启用:(...)
错误:(...)
原始:( ...)
脏:真实
接触:真实
状态:(...)
未接触:(...)
statusChanges:(...)
valueChanges:(...)
提交:true

如果我不调用导航语句,则该语句可用。

我不明白,我在导航之前将其打印到控制台。

我在这里做错了什么?

谢谢!

院长

这是因为你正在寻找的形式,但你有什么包含在形成特定的值。将您的代码更改为以下内容:

onSubmit(serviceForm: NgForm){
  console.log(serviceForm.value.endpoint);
}

在stackblitz上创建了一个演示应用程序,它使用您的确切形式说明了这一点。另外-请务必阅读表格上的文档

编辑以解决您编辑的问题

您正在记录对表单对象引用,但是当您在dev工具中检查该引用时,您已经离开页面,因此表单值不可用。MDN Web文档中对此进行了说明特别:

请注意,如果您在最新版本的Chrome和Firefox中记录对象,则在控制台上登录的内容是对该对象的引用,在调用控制台时,它不一定是对象的“值”。 log(),但是它是打开控制台时对象的值。

试试看MDN建议:

记录对象

不要用console.log(obj),用console.log(JSON.parse(JSON.stringify(obj)))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法使用angular js删除动态添加的表单字段

来自分类Dev

SyntaxError:在angular 8应用程序中实现phantomjs时使用保留字'class'

来自分类Dev

使用Angular创建互斥的表单字段

来自分类Dev

使用enctype = multipart / form-data时,无法获取表单字段的值:java servlets

来自分类Dev

Angular2 router.navigate重新加载应用程序

来自分类Dev

Router.navigate 在 angular 应用程序中不起作用

来自分类Dev

应用程序无法使用 Polymer 和 Angular 4

来自分类Dev

Angular 9应用程序错误:在“材料设计”对话框中呈现表单字段失败

来自分类Dev

使用 Angular 时,HTML“值”字段未预填充表单

来自分类Dev

输入表单字段不能在Angular应用中更新?

来自分类Dev

如何使Angular 8应用程序使用整个视口?

来自分类Dev

在 Angular 8 应用程序中使用外部 JavaScript 库

来自分类Dev

无法在Angular 2应用程序中提交HTML表单

来自分类Dev

使用事件发射器时无法运行我的Angular 2应用程序

来自分类Dev

无法使用Angular JS将表单字段数据携带到下一个HTML页面

来自分类Dev

如何在JavaFX应用程序中检索HTML表单字段

来自分类Dev

无法在UI物料表单中使用FormData来获取表单字段值

来自分类Dev

使用PhantomJS在Angular.js应用程序中填写表单

来自分类Dev

使用PhantomJS在Angular.js应用程序中填写表单

来自分类Dev

Angular指令中的表单字段验证无法正常工作

来自分类Dev

复制angular2中的表单字段值

来自分类Dev

Angular 4 中的表单字段默认值

来自分类Dev

无法使用AngularJS访问表单字段

来自分类Dev

使用 jQuery 拆分表单字段值

来自分类Dev

在 Rails 5.2 应用程序中使用 Postgres Array 列时清除表单字段的最佳实践?

来自分类Dev

使用量角器无法在Angular JS应用程序中找到元素

来自分类Dev

无法使用 Angular 5 应用程序从启用 CORS 的 API 获得响应

来自分类Dev

Angular JS 应用程序无法使用 wcf 休息服务显示数据

来自分类Dev

使用流体布局的 Angular 2 Web 应用程序无法响应多个屏幕尺寸

Related 相关文章

  1. 1

    无法使用angular js删除动态添加的表单字段

  2. 2

    SyntaxError:在angular 8应用程序中实现phantomjs时使用保留字'class'

  3. 3

    使用Angular创建互斥的表单字段

  4. 4

    使用enctype = multipart / form-data时,无法获取表单字段的值:java servlets

  5. 5

    Angular2 router.navigate重新加载应用程序

  6. 6

    Router.navigate 在 angular 应用程序中不起作用

  7. 7

    应用程序无法使用 Polymer 和 Angular 4

  8. 8

    Angular 9应用程序错误:在“材料设计”对话框中呈现表单字段失败

  9. 9

    使用 Angular 时,HTML“值”字段未预填充表单

  10. 10

    输入表单字段不能在Angular应用中更新?

  11. 11

    如何使Angular 8应用程序使用整个视口?

  12. 12

    在 Angular 8 应用程序中使用外部 JavaScript 库

  13. 13

    无法在Angular 2应用程序中提交HTML表单

  14. 14

    使用事件发射器时无法运行我的Angular 2应用程序

  15. 15

    无法使用Angular JS将表单字段数据携带到下一个HTML页面

  16. 16

    如何在JavaFX应用程序中检索HTML表单字段

  17. 17

    无法在UI物料表单中使用FormData来获取表单字段值

  18. 18

    使用PhantomJS在Angular.js应用程序中填写表单

  19. 19

    使用PhantomJS在Angular.js应用程序中填写表单

  20. 20

    Angular指令中的表单字段验证无法正常工作

  21. 21

    复制angular2中的表单字段值

  22. 22

    Angular 4 中的表单字段默认值

  23. 23

    无法使用AngularJS访问表单字段

  24. 24

    使用 jQuery 拆分表单字段值

  25. 25

    在 Rails 5.2 应用程序中使用 Postgres Array 列时清除表单字段的最佳实践?

  26. 26

    使用量角器无法在Angular JS应用程序中找到元素

  27. 27

    无法使用 Angular 5 应用程序从启用 CORS 的 API 获得响应

  28. 28

    Angular JS 应用程序无法使用 wcf 休息服务显示数据

  29. 29

    使用流体布局的 Angular 2 Web 应用程序无法响应多个屏幕尺寸

热门标签

归档