鈍足ランナーのIT日記

走るのが好きな5流のITエンジニアのブログ。

趣味の範囲は広いけど、どれも中途半端なクソブロガー楽しめるWebアプリを作ってあっと言わせたい。サーバーサイドPerl(Mojolicious)、クライアントサイドVue.js。Arduinoにも触手を伸ばす予定。

最大の難関、Backboneのviewに結びつくmodelを入れ替えたい

viewのインスタンスを活かしつつ、viewに結びつくmodelを入れ替えられないかと調べたけど. どうもそれはできないらしい。 viewを消して、新しいviewを作るというのが定石のようです。

recreating-a-removed-view-in-backbone-js

ただ、removeしてしまうと、新しくviewを作った時に描写ができない、 でもって、ラッパーは消さずに、そこに足していくのが定石なのかな...

backbone-remove-view-deletes-the-el

まとめると、こんな感じかな。。

var View = Backbone.View.extend({
  template: _.template( $("#add_record_template").html()),
  render: function(){
    var value = this.template( this.model.toJSON());
    this.$el.html(value);
    return this;
  }
});


// bootstrap code
view = new View({model: myModel});
$("#view_wrapper").append( view.render().$el );

// control view replace

view.remove();
view = new View({model: myModel});
$("#view_wrapper").append( view.render().$el );