1

私のグリッドビューでは、

コレクションの最後に新しいバックボーン モデル (ID のないモデル) を挿入すると、バックグリッドに新しい空白行が挿入されます。

その空白行の最初の入力セルにプレースホルダーを入れたいです。ドキュメントで同じものを見つけることができませんでしたが、幸いなことにコードで見つけました: https://github.com/wyuenho/backgrid/blob/master/lib/backgrid.js#L710

ただし、セルが編集モードになると、このプレースホルダーは初期化されます。

これはなぜですか??

プレースホルダーは常に表示されている必要があり、フォーカスがその入力セルに移動した場合にのみ非表示にする必要があります。

しかし、ここバックグリッドでは、まさにその逆が起こっています。

問題を取り除く方法は?

空の入力バックグリッド セルのプレースホルダーを常に表示したい。そのセルが編集モードになった場合にのみ非表示にします。

4

1 に答える 1

3

バックグリッド クラスは拡張できるように設計されています。関数を拡張してオーバーライド
することで、効果を得ることができます。Backgrid.Cellrender

Backgrid.PlaceholderCell = Backgrid.Cell.extend({

  className: "placeholder-cell",

  render: function () {
    this.$el.empty();
    var model = this.model;
    var value = this.formatter.fromRaw(model.get(this.column.get("name")), model);
    text = value || "PLACEHOLDER";
    this.$el.text(text);
    this.delegateEvents();
    return this;
  }

});

jsFiddle: http://jsfiddle.net/bh5nd/

于 2014-06-13T07:19:13.050 に答える