我正在使用Backgrid以及rails,我的要求是在backgrid单元格选项中更改href属性,我有以下代码
var grid = new Backgrid.Grid({
columns: [ {
name: "location",
cell: Backgrid.UriCell.extend({
}),
sortable: true,
editable: false
}]
})
上面的代码显示了hyrperlink,将href属性作为“location-name”,如下所示
<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>
我该怎么做,请帮帮我
答案 0 :(得分: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;
}
}),
答案 1 :(得分:0)
如果您签入文档,则可以看到formattedValue正在更改文本。因此,您应该更改格式化的值以更改链接的名称。有关详细信息,请参阅http://backgridjs.com/ref/formatter.html上的uriFormatter。