2012-05-17 7 views
12

Backbone.view、流星、ハンドルバーには、DOMのセクションを操作する際にオーバーラップ機能があります。私はBackboneを使うと思われるToDoアプリを見ていましたが、現実にはルータだけを使用しています。流星のハンドルバーテンプレートにバックボーンビューを配線する方法は?

バックボーンビューもテンプレートを扱います...しかし、それらは流星のテンプレートとはまったく違います。また、両方のバックボーンのように見える&流星モデルアップデートでUIを更新することができます。

大丈夫、私は迷っています!誰が何をするの?

Meteor Appのバックボーンは本当に便利ですか?バックボーン&ハンドルバーは共存できますか? メテオールのコンテキストで、バックボーンビューをハンドルバーテンプレートに配線する方法はありますか?

EDIT:todo-backboneの例が見つかりました。

  • 流星+バックボーン+テンプレートを強調
  • か...流星+ハンドル

流星バックボーン+ハンドル+は、実行可能なように見えるしていません:あなたがいずれかを行くことができることを確認しているようですオプション...

答えて

13

それは非常に簡単ですしないとアンダースコアテンプレートを使用するよりも、それ以上の仕事をありがとう。ここでは例の.htmlファイルです:

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

そして、ここでは一例です.jsファイル:

あなたはちょうどあなたのようUserViewを表示したいときは、その後、管理するために、ルータまたは別のビューを使用することができます
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アプリでも同じです。

重要な点は、Meteor.ui.renderや他のMeteor.uiメソッドを使用してHTMLをレンダリングして反応するようにすることです。

+0

おかげさまで@Aaron –

+1

なぜ彼らは流星の一部としてバックボーンを持ってきたのだろうか、それは非常に混乱します。 BBとMは多くの機能を共有しています。上記の例では、BB.modelをどのように使用して、それをまだM.collectionと見なすことができますか? –

+9

Meteorのモデルは、バックボーンの反応性とクライアント間の即時の同期を提供するものよりはるかにフル機能ですが、Backboneのモデルとコレクションのコンセプトは主にコールをサーバに構造化し、システム。 MeteorのコレクションやモデルをBackboneに組み込むことはできますが、私はそれをお勧めしたいと思います。代わりに、Meteorを使用する方法を使用してください。 – Aaron

関連する問題