1

問題:

以前backbone.stickitは、フォームの 2 方向バインディングを行っていました。ただし、すべての属性を設定updateModelしない限り、コレクションをキャンセルするのは難しいと感じました。false問題は、ユーザーが保存ボタンをクリックしたときにフォームからすべての値を取得するにはどうすればよいかということです。

AKA、stickit で一度に手動でデータを収集するにはどうすればよいですか?

手動でトリガーできるように、すべてのハンドラーを取得するためにアクセスしようとしましたが、明らかに、getConfiguration関数はプライベートであるため、アクセスできません。

4

2 に答える 2

0

私は間違っていた。getConfiguration は経由でアクセスできるBackbone.Stickit.getConfigurationので、すべての値を取得するためにこの関数を考え出しました。

  // for backbone form views with stickit enabled
  // to get all observed fields at once
  var stickitGetValues = function (values) {
    _.each(this.bindings, function(v, selector) {
      var namespace = '.stickit.' + this.model.cid;
      var $el = this.$(selector);
      var binding = this.bindings[selector];

      var config = Backbone.Stickit.getConfiguration($el, binding);

      if (values.indexOf(config.observe) != -1 && config.events && config.events.length > 0) {
        var event = config.events[0] + namespace;
        var val = config.getVal.call(this, $el, event, config);
        this.model.set(config.observe, val, {silent: true});
      }
    }, this);
  }

それを使用するには、backbone.view 内で呼び出すだけです。

stickitGetValues.call(this, ["name", "age", "whatever"]);

したがって、ビューのモデルはそれに応じて更新されます。

于 2014-05-27T14:20:56.567 に答える
0

Backbone.trackitを見てみましょう。保存されていない属性を管理しやすくするために設計されており、stickit とうまく連携します。

于 2014-05-28T12:23:18.897 に答える