0

我正在使用 Backgrid 和 rails ,我的要求是更改 backgrid 单元格选项中的 href 属性,我有以下代码

    var grid = new Backgrid.Grid({

     columns: [ {
      name: "location",
      cell: Backgrid.UriCell.extend({

      }),
      sortable: true,
      editable: false
     }]
    })

上面的代码显示超链接,将 href 属性作为“位置名称”,如下所示

  <a tabindex="-1" href="location-name" title="location-name" target="_blank">location-name</a>

,但我需要 href 属性如下

  <a tabindex="-1" href="#some-id" title="location-name" target="_blank">location-name</a>

我该怎么做,请帮帮我

4

2 回答 2

0

如果您查看文档,您可以看到格式化值正在更改文本。因此,您应该更改格式化的值以更改链接的名称。有关更多详细信息,请参阅http://backgridjs.com/ref/formatter.html上的 uriFormatter 。

于 2015-02-12T20:28:37.233 回答
0

查看文档(backgrid.js 的第 994 行),rawValue 直接取自列名,不是任何可以传入的选项。

  render: function () {
    this.$el.empty();
    var rawValue = this.model.get(this.column.get("name"));
    var formattedValue = this.formatter.fromRaw(rawValue, this.model);
    this.$el.append($("<a>", {
      tabIndex: -1,
      href: rawValue,
      title: this.title || formattedValue,
      target: this.target
    }).text(formattedValue));
    this.delegateEvents();
    return this;
  }

那么你可以用你自己的覆盖渲染吗?

cell: Backgrid.UriCell.extend({
 render: function () {
    this.$el.empty();
    var rawValue = //what ever you want to put in the href;
    var formattedValue = this.formatter.fromRaw(rawValue, this.model);
    this.$el.append($("<a>", {
      tabIndex: -1,
      href: rawValue,
      title: this.title || formattedValue,
      target: this.target
    }).text(formattedValue));
    this.delegateEvents();
    return this;
  }
}),
于 2014-06-12T13:38:17.657 回答