【发布时间】:2018-08-31 03:48:44
【问题描述】:
我为保险经纪公司构建了一个 vue.js 网络应用程序,其中每个代理都有自己的网站,该网站是从他们的个人资料生成的。
这是链接在我的 vue-router 索引文件中的样子"
{
path: '/agents/:id',
name: 'AgentSite',
component: AgentSite
},
除了网址太长而无法放入某些名片之外,一切都很好。我想把网址改成这样:
{
path: '/:id',
name: 'AgentSite',
component: AgentSite
},
但是,应用程序中的所有其他动态内容都会加载我们的代理网站模板 (AgentSite)。报价单、客户、政策...它们无法正确加载。
有没有办法从 URL 中删除“/agents”而不会弄乱我们应用程序的其余部分?我可以将它缩短为 "/a/:id 但这最终会比它的价值更令人困惑。
谢谢!
编辑:有几个人提到了代理 id 是数字时有效的解决方案。这是一个好主意,只是我们已经构建了代理“slugs”来代替使用。
关于代理网站布局:
created() {
console.log(this.$route.params.id);
this.$store.dispatch("getAgentFromSlug", this.$route.params.id);
}
在商店里:
getAgentFromSlug({commit}, payload){
const db = firebase.database();
db.ref("users/").orderByChild("slug").equalTo(payload).once("value",
(snap) => {
console.log(snap.val());
var info = snap.val();
commit("setAgentSiteInfo", info[Object.keys(info)[0]])
})
}
所以,我们的路由 ID 真的是个蛞蝓。
【问题讨论】:
-
那些蛞蝓的格式怎么样?
标签: vue.js vue-router vuex