String Vuejs筛选器字符串替换

String Vuejs筛选器字符串替换,string,vue.js,String,Vue.js,我有一个图像,我正在绑定源以拉入动态数据: <img :src="'/public/images/' + media.client.name + '_' + media.client.id + '/' + media.type + '/' + media.fileName + '.' + media.ext " alt > 请问如何在source的数据绑定中使用此筛选器 我试过: <img :src="'/public/images/' + media.client.na

我有一个图像,我正在绑定源以拉入动态数据:

 <img :src="'/public/images/' + media.client.name + '_' + media.client.id + '/' + media.type + '/' + media.fileName + '.' + media.ext " alt >
请问如何在source的数据绑定中使用此筛选器

我试过:

 <img :src="'/public/images/' + media.client.name | removeSpecial + '_' + media.client.id + '/' + media.type + '/' + media.fileName + '.' + media.ext " alt >



不幸的是,这两种方法都不起作用。

您可以创建一个方法,该方法将返回准备好的url计算方法,如下所示:

imageUrl(media){
  return '/public/images/' + media.client.name.replace("%20", " ") + '_' + media.client.id + '/' + media.type + '/' + media.fileName + '.' + media.ext;
}
或者,如果介质被分配到数据中,您可以使用计算方法返回相同的url

computed: {
 imageUrl(){
  return '/public/images/' + this.media.client.name.replace("%20", " ") + '_' + this.media.client.id + '/' + this.media.type + '/' + this.media.fileName + '.' + media.ext;
 }
}

您可以创建一个方法,该方法将返回准备好的url计算方法,如下所示:

imageUrl(media){
  return '/public/images/' + media.client.name.replace("%20", " ") + '_' + media.client.id + '/' + media.type + '/' + media.fileName + '.' + media.ext;
}
或者,如果介质被分配到数据中,您可以使用计算方法返回相同的url

computed: {
 imageUrl(){
  return '/public/images/' + this.media.client.name.replace("%20", " ") + '_' + this.media.client.id + '/' + this.media.type + '/' + this.media.fileName + '.' + media.ext;
 }
}

这将取决于您想要如何解码URI组件。如果这个
媒体
数据是动态填充的(我想是这样),您可以创建一个解析和解码它的方法(参见下面的示例)。但是,如果您需要此解码器作为
过滤器
,以下是文档摘录:

过滤器应该附加到JavaScript表达式的末尾,由“管道”符号表示

因此,您最好的选择可能是使用
computed
属性,以便“管道”它。是的,你可以利用本地方法来达到这个目的

方法#1:仅方法
newvue({
el:“#应用程序”,
数据(){
返回{
根路径:'/public/images/',
媒体:{
客户:{
名称:“音乐%20文件%20和%20空间”,
身份证号码:123
},
键入:“音乐文件”,
文件名:“一些音乐”,
分机:mp3
}
}
},
方法:{
getImgSource(媒体){
//分解属性以提高可读性。
const{client,type,fileName,ext}=media;
const{name,id}=client;
//使用模板文本。在这种情况下特别有用
//其中有多个唯一的分隔符。
//帮助您更清楚地看到这些URI组件是如何组合的。
返回`${this.rootPath}${decodeURIComponent(name)}{u${id}/${type}/${fileName}.${ext}`;
}
}
})

这取决于您想要如何解码URI组件。如果这个
媒体
数据是动态填充的(我想是这样),您可以创建一个解析和解码它的方法(参见下面的示例)。但是,如果您需要此解码器作为
过滤器
,以下是文档摘录:

过滤器应该附加到JavaScript表达式的末尾,由“管道”符号表示

因此,您最好的选择可能是使用
computed
属性,以便“管道”它。是的,你可以利用本地方法来达到这个目的

方法#1:仅方法
newvue({
el:“#应用程序”,
数据(){
返回{
根路径:'/public/images/',
媒体:{
客户:{
名称:“音乐%20文件%20和%20空间”,
身份证号码:123
},
键入:“音乐文件”,
文件名:“一些音乐”,
分机:mp3
}
}
},
方法:{
getImgSource(媒体){
//分解属性以提高可读性。
const{client,type,fileName,ext}=media;
const{name,id}=client;
//使用模板文本。在这种情况下特别有用
//其中有多个唯一的分隔符。
//帮助您更清楚地看到这些URI组件是如何组合的。
返回`${this.rootPath}${decodeURIComponent(name)}{u${id}/${type}/${fileName}.${ext}`;
}
}
})


属性绑定中不再支持筛选器。也就是说,使用而不是查找和替换。为了特定的目的,而不是在绑定表达式内部建立URL,请考虑使用计算的属性。也就是说,使用而不是查找和替换。对于特定的目的,而不是在绑定表达式内部建立URL,请考虑使用计算属性。这很好。非常感谢你!这个解决方案在我的项目中起了作用!很高兴这有帮助!:)这太棒了。非常感谢你!这个解决方案在我的项目中起了作用!很高兴这有帮助!:)非常感谢你!这对我来说是一个很好的学习曲线。非常感谢你!这对我来说是一个很好的学习曲线。