vue模板编译问题?

为啥我vmKey打印不出来str,求懂得分析下

阅读 1k
2 个回答

我验证是可以的呀,你看下 text 的值拿对没有
image.png

你把 if(item.nodeTypoe == 3) 去掉看看咯。

因为我看了一下 childNodes 你这样判断是匹配不了的。

image.png

所以这里是还需要递归的,如果当前 node 节点还有 childNodes 的话。

简单改写一下:

compile(node) {
  const reg = /\{\{(.*)\}\}/
  node.childNodes.forEach(node => {
      if (node.nodeType == 1) {
          console.log('元素节点:',node)
      } else if (node.nodeType == 3 && reg.test(node.textContent)) {
          console.log('插值文本:', node.textContent);
          node.textContent.replace(reg, (match,key)=>{
            console.log('match:', match, ', key:', key)
          })
      }
      // 递归子节点
      if (node.childNodes && node.childNodes.length > 0) {
          this.compile(node);
      }
  })
}

image.png

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