【发布时间】:2018-08-25 07:36:22
【问题描述】:
我正在使用 Angular4 应用程序。在此我想将数据从子组件传递到父组件。让我解释一下细节...
app.component.html
代码...
<div class="col-3">
<br>
<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=" My Cart {{totalcartval}} Item(s)" readonly >
</div>
</form>
</div>
我的购物车.component.html
代码...
import { Component,EventEmitter,Output } from '@angular/core';
import { Router } from '@angular/router';
import { HttpClient } from '@angular/common/http';
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 sendRecord(Totalcartval : number ) {
this.http.get('http://freegeoip.net/json/?callback')
.subscribe(
data => this.saveIP(data['ip'],Totalcartval),
error => console.error(error)
);
}
saveIP(address: string,cartval :number) {
this.http.get(`http://localhost:57036/api/data/CartCount/?IP_ADDRESS=${address}&ITEM_QTY=${cartval}&TIME=${this.fixedTimezone}`)
.subscribe(data => this.res = data['ITEM_QTY']);
}
ngOnInit() {}
}
当我添加一些数量并单击“添加到购物车”按钮时,数量会通过 API 传递到数据库进行存储,并在这一行得到响应(数量)
.subscribe(data => this.res = data['ITEM_QTY']);
现在我想从 my-cart.component.html 向 app.component.html 显示数量计数 ....当数据存储在 db 中时,响应回来了,我需要立即显示在父组件中计数,没有任何时间中断
我已经在 stackoverflow 中提到了一些例子,比如智利到父数据传递,但对我没有任何作用......
一些示例,例如子到父数据传递,需要在父组件中显示子组件,但在我的情况下,我不想在父组件中显示子组件,为什么因为如果我在购物车中添加了一些产品,我可以能够导航回我的父组件并在我的购物车中进一步添加其他产品...
Angular.. 有可能吗? 是的,意味着我怎样才能做到这一点......?
【问题讨论】:
-
你可以使用状态管理技术来实现这个参考这个repository
标签: angular angular4-router angular4-httpclient