在对另一个组件执行http请求时保持响应性
Keeping reactivity while doing http request into another component
我有这个应用程序结构
<header-bar></header-bar>
<bag :bag="bag"></bag>
<!--Main Section-->
<section class="MainSection">
<div class="MainSection__wrap">
<router-view
is="view"
transition="fade"
transition-mode="out-in"
keep-alive
>
</router-view>
</div>
</section>
如你所见,有2个组件和路由器视图。
路由器视图包含API中列出的产品,这些产品可以添加到bag组件中。
在我的产品视图(路由器视图的一部分),我有一个方法,添加项目到包-基本上使POST HTTP请求服务器
addToBag() {
productService.add(this.item)
.then(item => {
console.log('sucess !)
})
}
和这个工作,但只有重新加载后,我才能看到包里的物品。
调度事件是可以工作的,但是组件层次结构不允许我使用它
您正在服务器端添加项。您还需要将该项目添加到vm.bag
数据中。你可能想用Vuex
。基本上,你需要的是从你的bag
组件(你已经有)和从你的"productService"或"addToBag"方法访问相同的"包"。
因此,在声明bag
数据的组件中,您应该更改:
// from
/* inside component */
data: function() {
return {
bag: []
}
}
// to
var state = {
bag: []
}
/* inside component */
data: function() {
return {
bag: state.bag
}
}
然后,在addToBag
方法中使用相同的bag
数组:
addToBag() {
productService.add(this.item)
.then(item => {
state.bag.push(item)
})
}
相关文章:
- MockJax没有在JavaScript应用程序中发送对我AJAX请求的响应
- 由于响应中不存在“Access Control Allow Origin”标头,跨域请求停止工作
- 显示IIS上javascript文件(SOAP请求)的XML响应
- http请求使用html而不是json进行响应
- 飞行前响应中的访问控制允许标头不允许Angularjs请求标头字段访问控制允许标题
- Angular,对飞行前请求的响应
- 如何发送作为节点请求响应函数中的代码块的响应
- "所请求的名称已经作为不同类型的“”存在;HTTP 409响应错误
- 如何解压缩NodeJS请求's模块gzip响应体
- 在ajax请求中使用jquery获取javascript响应UJS
- HTTP请求使用cURL,但在浏览器中使用javascript时会得到CORS响应
- IE 10 挂起 XMLHttpRequest 6 分钟,然后响应请求(使用 AngularJS 实现 CRSF)
- backbone.js中.save()的响应/请求对象
- Django - 响应请求 AJAX
- 在响应请求之前,web服务器可以通过何种方式检查是否重定向现有页面上的GET请求
- 如何在完成SpookyJS脚本时响应请求
- Q延迟的Express未响应请求
- 节点.js:如何在检索数据时关闭响应/请求(chucks)
- Javascript/Java Servlet之间的响应/请求
- Ajax.更新程序和python响应请求