在Ag-grid cellRender中使用nuxt-link

时间:2019-07-10 12:31:08

标签: vue.js vue-router ag-grid nuxt.js

使用ag-grid表,我试图使用cellRender将整个表行路由到右页。尚不清楚如何通过nuxt-link进行此操作。

ag-grid行(单元格)应链接的路径如下:

<nuxt-link :to="'users/' + id + '/overview' ">

目前,我根据到目前为止找到的信息创建了一个具有路由名称的cellRender。

this.columnDefs = [
  {
    headerName: "ID",
    field: "id",
    cellRenderer: params => {
      const route = {
        name: "users", // This path should redirect to <nuxt-link :to="'users/' + id + '/overview' ">
        params: { id: params.value }
      };

      const link = document.createElement("a");
      link.href = this.$router.resolve(route).href;
      link.innerText = params.value;
      link.addEventListener("click", e => {
        e.preventDefault();
        this.$router.push(route);
      });
      return link;
    }
  },
  {
    headerName: "Naam",
    field: "naam",
    checkboxSelection: true,
    sortable: true,
    headerCheckboxSelection: true
  },
  { headerName: "Type", field: "type", sortable: true },
  { headerName: "Status", field: "status", sortable: true },
  { headerName: "Laatste Contact", field: "contact", sortable: true },

];

在整行中实现此类链接的最佳方法是什么?

提前谢谢!

2 个答案:

答案 0 :(得分:0)

在这种情况下,我们可以像nuxt-link一样模拟HTML:

cellRenderer: (params) => {
        return `<a href="/users/${params.value}/overview">${params.value}</a>`;
      }

有了我们,我们不必在意向路由添加历史记录,这是“不好的”事情,如果您更改此路由,则也需要在此处进行更新。

答案 1 :(得分:0)

我可以在单击一行时以编程方式链接到另一页。但是参数仍然在浏览器中的链接中可见。

我做了什么:

error[E0597]: `v` does not live long enough
 --> src/main.rs:3:26
  |
3 |     let test = Test { v: &v }; //inner_thread
  |                          ^^ borrowed value does not live long enough
4 |     std::thread::spawn(move || test.print());
  |     ---------------------------------------- argument requires that `v` is borrowed for `'static`
...
8 | }
  | - `v` dropped here while still borrowed

这在浏览器中为我提供了以下网址

this.gridOptions.onRowClicked = params => {
  this.$router.push({
    path: "/users/${params.data.id}/overview"
  });
};