javascript - 如何将输入的数据从一个html文件移动到其ts文件,然后移动到另一个组件文件?

标签 javascript angular typescript

我生成了两个组件登录和主页。我试图将用户输入从登录模板获取到登录组件,然后通过主页组件获取主页模板。我该怎么办?

我没有在任何组件文件中编写任何代码,只是在登录模板文件中编写。 以下是登录模板代码。

<form #loginForm="ngForm">
  <label>Username:</label>
  <input   name="username" ngModel #name="ngModel" required minlength="4" maxlength="10" appForbiddenName="jedii" type="text">
   <div *ngIf="name.touched && !name.valid">
     <div *ngIf="name.errors.required">username is mandatory</div>
     <div *ngIf="name.errors.minlength">username must be of min 4 characters</div>
     <div *ngIf="name.errors.forbiddenName">username cannot be jedii</div>
   </div> 
  <br><br>
  <label>Password:</label>
  <input type="password" name="password" ngModel #password="ngModel">
</form>
<br>
 <button routerLink="/home">Login</button> 
<br>
<br>
<button (click)="loginForm.resetForm()">Clear</button> 

最佳答案

有多种可能的方法可以从 ts 文件中的 html 访问用户输入数据并将数据从一个组件传递到另一个组件。

要从模板文件访问 ts 中的数据,您可以使用两种不同类型的表单:

  1. 模板驱动 ( Click here for more details )
  2. 响应式表单 ( Click here for more details )

要将数据从一个组件传递到另一个组件,可能的方法有:( Click here for more details )

  1. 通过输入绑定(bind)将数据从父级传递给子级
  2. 使用 setter 拦截输入属性更改
  3. 使用 ngOnChanges() 拦截输入属性更改
  4. 父级监听子级事件
  5. 父级通过局部变量与子级交互
  6. 父级调用@ViewChild()
  7. 家长和 child 通过服务进行交流

就您的情况而言,我认为最好的解决方案是使用模板驱动的表单并通过服务进行通信。其余取决于您的要求。

关于javascript - 如何将输入的数据从一个html文件移动到其ts文件,然后移动到另一个组件文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56540865/

相关文章:

javascript - 我的 JavaScript 有问题吗?

javascript - 在 angular2 Typescript 应用程序中使用 html2canvas 出现错误

angular - '未处理的 Promise 拒绝 :', ' 无法读取未定义的属性(读取 'then' )'

TypeScript:函数内的 forEach 未拾取函数参数类型的更改

typescript - 在 package.json 中指定多个类型定义文件

php - 当前浏览器版本检测

javascript - 元素生成 jquery 后运行函数

javascript - 验证单个单选按钮在可用的 JavaScript 验证脚本中不起作用

javascript - 如何在 Angular 内渲染 toastr?

javascript - Angular 和 Typescript - 从管理员登录中停用其他用户时出现问题