2

BackGrid を使用して、非表示の列から値を構成するフォーマッタを介してカスタム セルを構築することは可能ですか?

var grid = new Backgrid.Grid({
  columns: [
   {
   name:"half_value_1",
   cell:"string",
   rendered: false
   },
   {
   name:"half_value_2",
   cell:"string",
   rendered: false
   }, 
   {
    name: "composite",
    cell: "string",
    formatter: _.extend({}, Backgrid.CellFormatter.prototype, {
      fromRaw: function (half_value_1, half_value_2) {
        return half_value_1 + '/' + half_value_2;
      }
    })
  }],
  collection: col
});

関数内でhalf_value_1andを取得できますか?half_value_2fromRaw

4

1 に答える 1

6

必要な結果を得る最善の方法は、カスタム フォーマッタではなくカスタム セルを使用することだと思います。その特定の列に対して次のようなことができます。

{
    name: "composite",
    cell: Backgrid.Cell.extend({

        render: function(){

            // You have access to the whole model - get values like normal in Backbone
            var half_value_1 = this.model.get("half_value_1");
            var half_value_2 = this.model.get("half_value_2");

            // Put what you want inside the cell (Can use .html if HTML formatting is needed)
            this.$el.text( half_value_1 + '/' + half_value_2 );

            // MUST do this for the grid to not error out
            return this;

        }

    })
}

That should work perfectly for you - I use it for a handful of grids in my projects. I didn't test this code though, so I may have typos :)

Key

于 2013-11-27T03:49:21.443 に答える