虚拟图像路径在部分视图中不可见

Posted

技术标签:

【中文标题】虚拟图像路径在部分视图中不可见【英文标题】:Virtual Image Path not visible in partial View 【发布时间】:2021-11-29 10:35:51 【问题描述】:

这里有点奇怪。我试图找到答案,但无法找到。新节点。

问题:我的虚拟图像路径在我的视图中有效,但在我的部分视图中无效,即导航栏。这个导航栏有一个搜索栏,它正在获取数据库中的多肉植物,代码如下:

let searchBar = document.getElementById("searchBar");

searchBar.addEventListener("keyup", searchDatabase);

function searchDatabase() 
  const searchResults = document.getElementById("searchResults");
  //Reg expressions prevent special characters and only spaces fetching from db
  let match = searchBar.value.match(/^[a-zA-Z ]*/);
  let match2 = searchBar.value.match(/\s*/);

  if (match2[0] === searchBar.value) 
    searchResults.innerhtml = "";
    return;
  

  if (match[0] === searchBar.value) 
    fetch("searchSucculents", 
      method: "POST",
      headers:  "Content-Type": "application/json" ,
      body: JSON.stringify( payload: searchBar.value ),
    )
      .then((res) => res.json())
      .then((data) => 
        let payload = data.payload;
        searchResults.innerHTML = "";
        if (payload.length < 1) 
          searchResults.innerHTML = "<p>No search results found</p>";
          return;
         else if (searchBar.value === "") 
          searchResults.innerHTML = "";
          return;
         else 
          payload.forEach((item, index) => 
            if (index > 0) 
              searchResults.innerHTML += "<hr>";
            
           
            searchResults.innerHTML += 
                `<div class="card" style="width: 18rem;">
                    <img src="$item.SucculentImagePath" class="card-img-top" >
                    <div class="card-body">
                        <p class="card-text">$item.SucculentName</p>
                    </div>
                </div>`;      
          );
        
        return;
      );
  
  searchResults.innerHTML = "";

路线如下:

app.post("/searchSucculents", async (req, res) => 
  let payload = req.body.payload.trim();
  let search = await Succulent.find(SucculentName: $regex: new RegExp("^"+payload+".*","i")).exec();
  //Limit Search Results to 10
  search = search.slice(0, 10);
  res.send(payload: search);
)

这是我的架构中定义图像路径的部分:

    succulentSchema.virtual('SucculentImagePath').get(function() 
    if (this.SucculentImage != null && this.SucculentImageType != null) 
      return `data:$this.SucculentImageType;charset=utf-8;base64,$this.SucculentImage.toString('base64')`
    
  )

我可以在我的完整视图中引用此图像路径,如下所示:

<img src="<%= succulent.SucculentImagePath %>">

但是,当我尝试在导航的此搜索栏中访问 SucculentImagePath 属性时,它是未定义的。我在这里遗漏了什么吗?

【问题讨论】:

【参考方案1】:

经过进一步研究,我发现在将数据解析为 JSON 时不能使用 mongoose virtuals(我知道这是菜鸟的错误)。

我通过在模式对象中添加它作为选项来修复它:

toJSON:  virtuals: true  )

【讨论】:

以上是关于虚拟图像路径在部分视图中不可见的主要内容,如果未能解决你的问题,请参考以下文章

渐变层在视图中不可见

iOS 为 UIImageView 获取图像的可见部分

无法在服务器上的部分视图中解析上传的图像路径

UILabel 在圆形自定义 UIView 中不可见

更改列表视图中图像的可见性

应用程序在手机应用程序部分的智能手表 Play 商店中不可见