angular – 如何将值从一个组件发送到另一个组件?

前端之家收集整理的这篇文章主要介绍了angular – 如何将值从一个组件发送到另一个组件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我制作了一个组件,其中我有一个输入字段和按钮.单击按钮我正在绘制第二个组件.我想将数据从一个组件发送到另一个组件?

我将如何将数据从一个组件发送到另一个组件.我需要发送输入值(输入字段中的用户类型)我需要在下一个组件或下一页显示.单击按钮.如何发送数据?
这是我的傻瓜
http://plnkr.co/edit/IINX8Zq8J2LUTIyf4DYD?p=preview

  1. import {Component,View} from 'angular2/core';
  2. import {Router} from 'angular2/router';
  3.  
  4. @Component({
  5. templateUrl: 'home/home.html'
  6. })
  7.  
  8.  
  9. export class AppComponent {
  10. toDoModel;
  11. constructor(private _router:Router) {
  12.  
  13.  
  14. }
  15.  
  16. onclck(inputValue){
  17. alert(inputValue)
  18. this._router.navigate(['Second']);
  19. }
  20.  
  21. }
哦!!可能我来不及回答这个问题!
但没关系.这可能会帮助您或其他人使用与共享服务一起使用的路由器,共享服务和共享对象在组件之间共享数据.我希望这肯定会有所帮助.

Answer

Boot.ts

  1. import {Component,bind} from 'angular2/core';
  2.  
  3. import {bootstrap} from 'angular2/platform/browser';
  4.  
  5. import {Router,ROUTER_PROVIDERS,RouteConfig,ROUTER_DIRECTIVES,APP_BASE_HREF,LocationStrategy,RouteParams,ROUTER_BINDINGS} from 'angular2/router';
  6.  
  7. import {SharedService} from 'src/sharedService';
  8.  
  9. import {ComponentFirst} from 'src/cone';
  10. import {ComponentTwo} from 'src/ctwo';
  11.  
  12.  
  13. @Component({
  14. selector: 'my-app',directives: [ROUTER_DIRECTIVES],template: `
  15. <h1>
  16. Home
  17. </h1>
  18.  
  19. <router-outlet></router-outlet>
  20. `,})
  21.  
  22. @RouteConfig([
  23. {path:'/component-first',name: 'ComponentFirst',component: ComponentFirst}
  24. {path:'/component-two',name: 'ComponentTwo',component: ComponentTwo}
  25.  
  26. ])
  27.  
  28. export class AppComponent implements OnInit {
  29.  
  30. constructor(router:Router)
  31. {
  32. this.router=router;
  33. }
  34.  
  35. ngOnInit() {
  36. console.log('ngOnInit');
  37. this.router.navigate(['/ComponentFirst']);
  38. }
  39.  
  40.  
  41.  
  42. }
  43.  
  44. bootstrap(AppComponent,[SharedService,bind(APP_BASE_HREF).toValue(location.pathname)
  45. ]);

FirstComponent

  1. import {Component,View,bind} from 'angular2/core';
  2. import {SharedService} from 'src/sharedService';
  3. import {Router,ROUTER_BINDINGS} from 'angular2/router';
  4. @Component({
  5. //selector: 'f',template: `
  6. <div><input #myVal type="text" >
  7. <button (click)="send(myVal.value)">Send</button>
  8. `,})
  9.  
  10. export class ComponentFirst {
  11.  
  12. constructor(service:SharedService,router:Router){
  13. this.service=service;
  14. this.router=router;
  15. }
  16.  
  17. send(str){
  18. console.log(str);
  19. this.service.saveData(str);
  20. console.log('str');
  21. this.router.navigate(['/ComponentTwo']);
  22. }
  23.  
  24. }

SecondComponent

  1. import {Component,template: `
  2. <h1>{{myName}}</h1>
  3. <button (click)="back()">Back<button>
  4. `,})
  5.  
  6. export class ComponentTwo {
  7.  
  8. constructor(router:Router,service:SharedService)
  9. {
  10. this.router=router;
  11. this.service=service;
  12. console.log('cone called');
  13. this.myName=service.getData();
  14. }
  15. back()
  16. {
  17. console.log('Back called');
  18. this.router.navigate(['/ComponentFirst']);
  19. }
  20.  
  21. }

SharedService和共享对象

  1. import {Component,Injectable,Input,Output,EventEmitter} from 'angular2/core'
  2.  
  3. // Name Service
  4. export interface myData {
  5. name:string;
  6. }
  7.  
  8.  
  9.  
  10. @Injectable()
  11. export class SharedService {
  12. sharingData: myData={name:"nyks"};
  13. saveData(str){
  14. console.log('save data function called' + str + this.sharingData.name);
  15. this.sharingData.name=str;
  16. }
  17. getData:string()
  18. {
  19. console.log('get data function called');
  20. return this.sharingData.name;
  21. }
  22. }

猜你在找的Angularjs相关文章