如何在Angular 4中将值从子组件传递给父组件
发布时间:2020-12-17 17:24:02 所属栏目:安全 来源:网络整理
导读:我正在使用Angular4应用程序,我正在尝试将值从子组件传递到父组件.我已经实现了一些东西,但我无法按预期获得输出. 子组件图像… 儿童组件代码…… div class="row" div class="col-3" input type="text" readonly class="form-control col-8 text-center bg-
我正在使用Angular4应用程序,我正在尝试将值从子组件传递到父组件.我已经实现了一些东西,但我无法按预期获得输出.
子组件图像… 儿童组件代码…… <div class="row"> <div class="col-3"> <input type="text" readonly class="form-control col-8 text-center bg-white font-weight-bold " id="counterval" value="{{counter}}" #Totalcartval> </div> <a class="btn btn-primary text-white" (click)="decrement()" role="button"> <i class="fa fa-minus" style="font-size:15px"></i> </a> <div class="col-1"></div> <a class="btn btn-primary text-white" (click)="increment()" role="button"> <i class="fa fa-plus" style="font-size:15px"></i> </a> </div> <button type="button" (click)="sendRecord(Totalcartval.value)" class="btn btn-success" data-toggle="modal" data-target=".bd-example-modal-lg">Add To Cart</button> 子组件.ts代码…… import { Component,EventEmitter,Output } from '@angular/core'; import { Router } from '@angular/router'; import { SessionStorageService,SessionStorage } from 'angular-web-storage'; @Component({ selector: 'app-my-cart',templateUrl: './my-cart.component.html',styleUrls: ['./my-cart.component.css'],outputs :['ChildEvent'] }) export class MyCartComponent { public counter : number = 1; increment(){ this.counter += 1; } decrement(){ if(this.counter >1) { this.counter -= 1; } } @Output() sendCount : EventEmitter <number> = new EventEmitter<number>(); public sendRecord(Totalcartval : number ) { this.sendCount.emit(Totalcartval); } constructor(private router:Router) { this.router.events.subscribe( () => window.scrollTo(0,0) ); } ngOnInit() {} } 我得到了文本框值 this.sendCount.emit(Totalcartval); 我无法将其作为父组件接收并在必填字段中显示… 父组件代码.. <form class="form-inline"> <div class="input-group"> <div class="input-group-prepend"> <span class="input-group-text" id="basic-addon1"> <i class="fas fa-shopping-bag text-primary" style="font-size:40px"></i> </span> </div> <input type="text" class="form-control bg-white" placeholder="My Cart" value="{{totalcartval}}" readonly > </div> </form> 我想在上面的文本框中显示数据 父组件.ts代码…… import { Component,OnInit } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { DatePipe } from '@angular/common'; import { HostListener } from '@angular/core'; @Component({ selector: 'app-root',templateUrl: './app.component.html',styleUrls: ['./app.component.css'] }) export class AppComponent implements OnInit{ today = Date.now(); fixedTimezone =this.today; res : string; public totalcartval :number; public getRecord(data: number) : void { this.totalcartval = data; } constructor(private http: HttpClient) { } } 在Angular 4中是否有可能将数据从子节点绑定到父节点? 谢谢… 解决方法
您使用事件发射器sendCount发出值.
你必须使用这样的子组件在父组件中接收它: parent.html <app-my-cart (sendCount)="customFunc($event)"></app-my-cart> parent.ts customFunc(data){ this.totalcartval = data; } 此外,还有其他方式可以在rxjs中使用主题或使用共享服务进行通信. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |