开发者社区> 问答> 正文

关于vue的一些问题请教各位巨佬? 400 报错

关于vue的一些问题请教各位巨佬? 400 报错

最近在自学vue,碰见个问题在这请教下各位。

<div>

    <ul v-html="ulNavBar"></ul>

</div>

export default {
  name: 'NavBar',
  data () {
    return {
      ulNavBar: ''
    }
  },
  created () {
    var that = this;
    $.ajax({
      type: "post",
      data: {},
      url: this.GLOBAL.baseURL,
      dataType: "json",
      success: function(data){
        for(var i in data){
          html+='<li>';
          html+='<router-link to="/">首页</router-link>';
          html+='</li>';
        }
        that.ulNavBar=html;
      }
    })
  }
}

若上代码,本意是像用ajax请求获得菜单数据,然后展示在这,做路由是用到<router-link to="/">,但是按照上面的方法router-link并没有起作用是怎么回事

展开
收起
爱吃鱼的程序员 2020-05-30 23:58:26 478 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    思路清奇,让我眼前一亮######大佬别嘲笑######

    既然有for为什么不用v-for?html是哪里来的?你的这个路由是首页还是不是?所有的都跳转到首页貌似没有意义吧?

    最后,你用v-html渲染出来的是vue的命令的字符串,是不会被转化成实际的html的,当然不会起作用。你看你最后页面上li里面的是router-link标签,这个只在.vue中才有意义。

    ######目前还对这东西不是很了解,刚才参考官方文档改成下面的样子,已经实现了,现在这设计有什么问题,因为刚学,虽然实现,但是符不符合规范或者怎么样的######

    参考官方文档,目前修改成如下这样解决了问题:

    <li v-for="item in navList" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-173">
        <router-link v-bind:to="item.menuUrl" v-text="item.menuName"></router-link>
    </li>
    export default {
      name: 'NavBar',
      data () {
        return {
          navList:[]
        }
      },
      created () {
        var that = this;
        $.ajax({
          type: "post",
          data: {},
          url: this.GLOBAL.baseURL+,
          dataType: "json",
          success: function(data){
            that.navList=data;
          }
        })
      }
    }
    ######

    v-html 不再支持 vue 的相关语法,只支持原生的html 语法

    ######

    还保留着 jQuery的 思想哈

    ######根深蒂固
    2020-05-30 23:58:28
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Vue.js 在前端服务化上的探索与实践 立即下载
利用编译将 Vue 组件转成 React 组件 立即下载
Vue.js在前端服务化上的实践与探索 立即下载