vue能打印数据,但是循环不出来?

遇到一个问题,就是我在return返回前打印result能看到搜索的数据,但是为什么v-for不出来?

methods:{
searchFor(value, searchStr) {

  var result = {}; 
  if (!searchStr) { return value; }
  searchStr = searchStr.trim().toLowerCase(); 
  for(var key in value){
    for(var i=0;i<value[key].length;i++){
      if (value[key][i].name.toLowerCase().indexOf(searchStr) != -1){
        result[key] = value[key][i].name;
        //console.log(result[key])
      }
    }
  }
  console.log(result)
  return result;

}
}

        
    });
阅读 3.8k
2 个回答

数组形式不对,给你改了一下

   searchFor(value, searchStr) {
    
      var result = {};  //用result来存放查到的结果
      if (!searchStr) { return value; }
      searchStr = searchStr.trim().toLowerCase();   //把查询的内容转为小写的
      for(var key in value){
        result[key] = [];
        for(var i=0;i<value[key].length;i++){            
          if (value[key][i].name.toLowerCase().indexOf(searchStr) != -1){
            result[key].push({"name":value[key][i].name});
          }
        }
      }
      console.log(result)
      return result;
    
    }

这种方式应该不会触发渲染,for里面就放articles,把if逻辑写在里层标签下试试

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题