我制作了一个组件,其中我有一个输入字段和按钮.单击按钮我正在绘制第二个组件.我想将数据从一个组件发送到另一个组件?
我将如何将数据从一个组件发送到另一个组件.我需要发送输入值(输入字段中的用户类型)我需要在下一个组件或下一页显示.单击按钮.如何发送数据?
这是我的傻瓜
http://plnkr.co/edit/IINX8Zq8J2LUTIyf4DYD?p=preview
import {Component,View} from 'angular2/core'; import {Router} from 'angular2/router'; @Component({ templateUrl: 'home/home.html' }) export class AppComponent { toDoModel; constructor(private _router:Router) { } onclck(inputValue){ alert(inputValue) this._router.navigate(['Second']); } }
哦!!可能我来不及回答这个问题!
但没关系.这可能会帮助您或其他人使用与共享服务一起使用的路由器,共享服务和共享对象在组件之间共享数据.我希望这肯定会有所帮助.
但没关系.这可能会帮助您或其他人使用与共享服务一起使用的路由器,共享服务和共享对象在组件之间共享数据.我希望这肯定会有所帮助.
Boot.ts
import {Component,bind} from 'angular2/core'; import {bootstrap} from 'angular2/platform/browser'; import {Router,ROUTER_PROVIDERS,RouteConfig,ROUTER_DIRECTIVES,APP_BASE_HREF,LocationStrategy,RouteParams,ROUTER_BINDINGS} from 'angular2/router'; import {SharedService} from 'src/sharedService'; import {ComponentFirst} from 'src/cone'; import {ComponentTwo} from 'src/ctwo'; @Component({ selector: 'my-app',directives: [ROUTER_DIRECTIVES],template: ` <h1> Home </h1> <router-outlet></router-outlet> `,}) @RouteConfig([ {path:'/component-first',name: 'ComponentFirst',component: ComponentFirst} {path:'/component-two',name: 'ComponentTwo',component: ComponentTwo} ]) export class AppComponent implements OnInit { constructor(router:Router) { this.router=router; } ngOnInit() { console.log('ngOnInit'); this.router.navigate(['/ComponentFirst']); } } bootstrap(AppComponent,[SharedService,bind(APP_BASE_HREF).toValue(location.pathname) ]);
FirstComponent
import {Component,View,bind} from 'angular2/core'; import {SharedService} from 'src/sharedService'; import {Router,ROUTER_BINDINGS} from 'angular2/router'; @Component({ //selector: 'f',template: ` <div><input #myVal type="text" > <button (click)="send(myVal.value)">Send</button> `,}) export class ComponentFirst { constructor(service:SharedService,router:Router){ this.service=service; this.router=router; } send(str){ console.log(str); this.service.saveData(str); console.log('str'); this.router.navigate(['/ComponentTwo']); } }
SecondComponent
import {Component,template: ` <h1>{{myName}}</h1> <button (click)="back()">Back<button> `,}) export class ComponentTwo { constructor(router:Router,service:SharedService) { this.router=router; this.service=service; console.log('cone called'); this.myName=service.getData(); } back() { console.log('Back called'); this.router.navigate(['/ComponentFirst']); } }
SharedService和共享对象
import {Component,Injectable,Input,Output,EventEmitter} from 'angular2/core' // Name Service export interface myData { name:string; } @Injectable() export class SharedService { sharingData: myData={name:"nyks"}; saveData(str){ console.log('save data function called' + str + this.sharingData.name); this.sharingData.name=str; } getData:string() { console.log('get data function called'); return this.sharingData.name; } }