12

DOMのセクションを操作する場合、Backbone.view、meteor、およびハンドルバーにはオーバーラップ機能があるように見えます。バックボーンを使用することになっているToDoアプリを見ましたが、実際にはルーターしか使用していません。

バックボーンビューもテンプレートを処理します...しかし、それらは流星テンプレートとは非常に異なって聞こえます。その上、バックボーンと流星の両方がモデルの更新でUIを更新できるようです。

わかりました、私は迷子になりました!?誰が何をしますか?

BackboneはMeteorアプリにとって本当に便利ですか?バックボーンとハンドルバーは共存できますか?そして、可能であれば、Meteorコンテキストで、バックボーンビューをハンドルバーテンプレートにワイヤリングする方法はありますか?

編集:todo-backboneの例を見つけました。次のいずれかに進むことができることを確認しているようです。

  • 流星+バックボーン+アンダースコアテンプレート
  • または...流星+ハンドルバー

meteor + backbone+handlebarsは実行可能なオプションのようには見えません...

ありがとうございました

4

1 に答える 1

13

これは非常に簡単で、Underscore テンプレートを使用するよりも手間がかかりません。.html ファイルの例を次に示します。

<template name="user_list">
<ul>
  {{#each users}}
  <li>{{name}}</li>
  {{/each}}
</ul>
</template>

.js ファイルの例を次に示します。

Users = new Meteor.collection("users");

if (Meteor.is_client) {
  Template.user_list.users = function() {
    return Users.find();
  }

  window.UserView = Backbone.View.extend({
    initialize: function() {
      _.bindAll(this, 'render');
    },
    template: function() {
      Meteor.ui.render(function() {
        return Template.user_list();
      });
    },
    render: function() {
      $(el).empty().append(this.template());
    }
  });
}

次に、他の Backbone.js アプリと同じように、UserView を表示するときに Router または別の View を使用して管理できます。

重要なのは、Meteor.ui.render または他の Meteor.ui メソッドを使用して HTML をレンダリングし、リアクティブにすることです。

于 2012-05-17T09:42:24.757 に答える