[英]How to pass a variable value from computed to template in vue?
我有一个 json 响应,在“产品”中我有“资金”,而在资金内部我有一个日期字段。 我想在模板中查看日期。
我使用 forEach 来迭代产品,然后迭代资金,然后将日期分配给变量。 这是在 computed() 内部完成的。
现在我希望在模板中获取日期。 但我无法获取它。
我尝试在方法()中添加相同的内容,但没有成功
data: function(){
return {
date: ''
}
},
computed: {
products: function(){
let products = this.sortedSchemeData.products;
var year = this.selectedSchemeYear;
products.forEach(function(product){
product.funds.forEach(function(fund){
var date = fund.fundsProcessDate;
console.log(date); //some date from json
})
});
return products;
}
},
<template>
<div>
<p>date: <b>{{date}}</b></p>
</template>
date: date in json
products[0].funds[0].fundProcessDate
不处理第一个product
为空的情况。 我下面的例子确实处理了它。
computed: {
date() {
const found = this.products.find(product =>
product.funds.some(fund => fund.fundsProcessDate != null)
);
return (found && found.funds[0].fundsProcessDate) || "01-01-2019"; //default date if not found from all of them
}
}
您可以在这种情况下使用Computed-Setter 。
data: function(){
return {
date: ''
}
},
computed: {
products: {
// setter
set: function (newValue) {
let products = newValue;
var year = this.selectedSchemeYear;
products.forEach(function(product){
product.funds.forEach(function(fund){
this.date = fund.fundsProcessDate;
})
});
}
}
},
<template>
<div>
<p>date: <b>{{date}}</b></p>
</template>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.