Vue-router: v-link的参数不支持对象吗?

Created on 7 May 2016  ·  5Comments  ·  Source: vuejs/vue-router

urlObj = {
name: 'vod-seriesVvDetail',
params : {
pid: id,
channel: data[i].cid,
pname: name,
isMpp: data[i].isMpp,
time: paramFactory.getTime(),
dateNum: paramFactory.getDateNum(),
terminal: paramFactory.getTerminal(),
playType: paramFactory.getPlayType()
}
}
url = <a v-link="{name: ${name}, params: ${urlObj.params}}">${name}</a>

在js里面拼出来url,然后渲染出来的结果是:
<a v-link="{name: 标题测试, params: [object Object]}">标题测试</a>
请问有什么办法能传递对象给v-link吗? 这样就不用拼这么长的url了

Most helpful comment

html

<a v-link="{ name: 'test', query: this.urlObj }">test</a>

data

data () {
      return {
        isShowPicker: true,
        isAgree: false,
        urlObj: {
          userId: 1234,
          age: 24,
          name: 'liujb'
        },
        items: []
      }
    }

得到结果

<a href="#!/test?age=24&name=liujb&userId=1234" class="v-link-active">Test</a>

不知道是不是你要的效果。

All 5 comments

html

<a v-link="{ name: 'test', query: this.urlObj }">test</a>

data

data () {
      return {
        isShowPicker: true,
        isAgree: false,
        urlObj: {
          userId: 1234,
          age: 24,
          name: 'liujb'
        },
        items: []
      }
    }

得到结果

<a href="#!/test?age=24&name=liujb&userId=1234" class="v-link-active">Test</a>

不知道是不是你要的效果。

但是如果我想这样呢?

router.map({ '/edit/:id' })

然后我 router 传递的时候需要传递一个 { id: id, name: name, age: age }

这样的一个数据,必须要设置router的 alias 才行吗?才能让 url 看着好看,数据也传递过去了

不支持对象。
比如说,你有'/foo/bar'这个链接,别人点这个链接想要打开这个app。
这个时候怎么传这个对象?他没有没有打开过应用,没有点击过任何东西。
所以路由参数只能是字符串,因为它是从url里传进来的。

@liujb 对的 我要的就是这样的效果 谢谢啦

<a v-link="{name: ${name},query: ${urlObj.params}}">${name}</a>这样可以传对象

Was this page helpful?
0 / 5 - 0 ratings