├── .gitmodules ├── docs ├── Utility.md ├── Introduction.md ├── Upgrading.md ├── History.md ├── Events.md ├── Sync.md ├── Router.md ├── View.md ├── docco.css ├── FAQ.md ├── Collection.md ├── Model.md └── Examples.md ├── README.md └── backbone.js /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "original"] 2 | path = original 3 | url = git@github.com:documentcloud/backbone.git 4 | -------------------------------------------------------------------------------- /docs/Utility.md: -------------------------------------------------------------------------------- 1 | + 元文書: [backbone/index.html at 9890d49db164e63b9b56e9d664ec0aab2289e0de · documentcloud/backbone · GitHub](https://github.com/documentcloud/backbone/blob/9890d49db164e63b9b56e9d664ec0aab2289e0de/index.html "backbone/index.html at 9890d49db164e63b9b56e9d664ec0aab2289e0de · documentcloud/backbone · GitHub") 2 | 3 | ## Utility Functions [原文](http://backbonejs.org/#Utility) 4 | 5 | ### noConflict `var backbone = Backbone.noConflict();` [原文](http://backbonejs.org/#Utility-noConflict) 6 | 現在の状態の`Backbone`オブジェクトを返します。あなたは`Backbone.noConflict()`によって返された値を、ローカルのBackboneへの参照として保持することができます。 7 | Backboneを第三者のWebサイトに埋め込もうとする場合など、既に存在するBackboneを上書きしたくない場合に便利です。 8 | 9 | ```javascript 10 | var localBackbone = Backbone.noConflict(); 11 | var model = localBackbone.Model.extend(...); 12 | ``` 13 | 14 | ### setDomLibrary `Backbone.setDomLibrary(jQueryNew);` [原文](http://backbonejs.org/#Utility-setDomLibrary) 15 | もしあなたがjQueryのようなDOM/Ajaxライブラリを複数使う場合、Backboneにそれを伝えてあげて下さい。 -------------------------------------------------------------------------------- /docs/Introduction.md: -------------------------------------------------------------------------------- 1 | + 元文書: [backbone/index.html at 9890d49db164e63b9b56e9d664ec0aab2289e0de · documentcloud/backbone · GitHub](https://github.com/documentcloud/backbone/blob/9890d49db164e63b9b56e9d664ec0aab2289e0de/index.html "backbone/index.html at 9890d49db164e63b9b56e9d664ec0aab2289e0de · documentcloud/backbone · GitHub") 2 | 3 | ## イントロダクション 4 | 5 | 大量のJavaScriptを含むWebアプリケーションの開発において、まず最初に学ぶ事はデータをDOMに紐付けるのをやめることです。HTMLのUI、JavaScriptのロジック、そしてサーバ上のデータベース、これらの間でデータの同期を取ろうとして、jQueryのセレクタとコールバックが複雑に積み重なったJavaScriptアプリを書いてしまう、というのは非常にやってしまいがちなことですが、リッチなクライアントサイド・アプリケーションにおいては、より構造的なアプローチの方がうまくいく場合が多いのです。 6 | 7 | Backboneではデータをモデルとして表現します。モデルは生成、評価、破棄することが可能で、さらにサーバに保存できます。UI操作によりモデルの属性が変更された場合、changeイベントが発行されます。イベントはモデルの状態を表示しているすべてのビューに通知され、ビューはそのイベントに反応し、新しい情報を表示するために自身を再描画します。Backboneを使って書かれたアプリでは、DOMの中から特定のidを持つエレメントを検索したり、手動でHTMLを更新したりといった、つなぎのコードは不要です。モデルが変更された際に、ビューは単に自分自身を更新します。 8 | 9 | はじめての方で、Backboneが何のためのものなのかよくわからない方は、[Backbone使ったプロジェクトのリスト](http://backbonejs.org/#examples)を見るところから初めてください。 10 | 11 | 以下に登場するコード例の多くは実際に動かしてみることができます。動かすには再生ボタンを押してください。 12 | -------------------------------------------------------------------------------- /docs/Upgrading.md: -------------------------------------------------------------------------------- 1 | + 元文書: [backbone/index.html at 9890d49db164e63b9b56e9d664ec0aab2289e0de · documentcloud/backbone · GitHub](https://github.com/documentcloud/backbone/blob/9890d49db164e63b9b56e9d664ec0aab2289e0de/index.html "backbone/index.html at 9890d49db164e63b9b56e9d664ec0aab2289e0de · documentcloud/backbone · GitHub") 2 | 3 | ## ver 0.9へのアップグレードに際して [原文](http://backbonejs.org/#upgrading) 4 | 5 | Backbone.js ver0.9系は、ver1.0のリリース候補版として位置付けています。いくつかのAPIが変更され、多くの活用すべき新機能があります、それらの変更については[更新履歴](#changelog)に記載されていますが、特に以下のいくつかの変更点については注意が必要です: 6 | 7 | + Backbone Viewを`this.el`を使って手動で特定のDOM要素に設定している場合、代わりに[setElement](#View-setElement)メソッドを利用してください。 8 | + Modelの扱いはとても楽観的です。サーバーからの応答があるまで過去の振る舞いを維持したい場合は、`{wait: true}`を設定するようにしてください。[save](#Model-save)メソッドをコールする場合にも同様の事が言えます。 9 | + これまで`$(view.el)`を利用してきたなら、このjQueryオブジェクトに対するキャッシュされたリファレンスである[$el](#View-$el)が利用できるようになりました。 10 | + Backbone.jsのバージョンを0.9にアップグレードする場合、Underscore.jsのバージョンもver1.3.1以上を使用するようにしてください。 11 | + Modelに`{silent: true}`を設定すると、`model.set`はchangeイベントを発火しなくなります。その後、元の値に設定し直されます。同様にアトリビュートをsilentオプションを使って変更した場合にも、次の変更時には`change:attribute`イベントを発火します。 12 | + `view.$(selector)`は`$(selector, view.el)`では`view.$el.find(selector)`とすることと同様になったため、`selector`がHTMLの文字列やDOM要素である場合に利用することはできなくなりました。 -------------------------------------------------------------------------------- /docs/History.md: -------------------------------------------------------------------------------- 1 | + 元文書: [backbone/index.html at 9890d49db164e63b9b56e9d664ec0aab2289e0de · documentcloud/backbone · GitHub](https://github.com/documentcloud/backbone/blob/9890d49db164e63b9b56e9d664ec0aab2289e0de/index.html "backbone/index.html at 9890d49db164e63b9b56e9d664ec0aab2289e0de · documentcloud/backbone · GitHub") 2 | 3 | ## Backbone.history [原文](http://backbonejs.org/#History) 4 | 5 | **History** は(フレームごとに)グローバルなルーターとしてサービスを提供し、`hashcange` イベントや `pushState` を処理して、適切なルートに一致させ、コールバックをトリガします。あなたはこれらのうちひとつも自作する必要はなく -- Router を ruoutes とともに使うとき作られる、 `Backbone.history` への参照を使うべきです。 6 | 7 | **pushState** のサポートは Backbone 内で、純粋にオプトインを基本として存在します。`pushState` をサポートしていない古いブラウザでは、ハッシュベースのURLフラグメントを使い続けますが、もし `pushState` 対応ブラウザでハッシュURLに訪れている場合、それは透過的に本当のURLにアップグレードされます。本当のURL群を使うことで、ウェブサーバは正しくそれらのページをレンダリングできなければならず、そのため、バックエンドの変更も必要になります。例えば、`/documents/100` へのルートがある場合、ブラウザでそのURLに直接訪問したら、ウェブサーバはそのページを提供できなければなりません。サーチエンジンが完全にクロールできるようにするには、サーバに完全なページのHTMLを生成させるのが最善です … が、ウェブアプリケーションの場合は、ルートURL用のものと同じ内容だけをレンダリングし、あとはBackboneのビューと JavaScriptがうまく動いて残りを埋めます。 8 | 9 | ### start `Backbone.history.start([options])` [原文](http://backbonejs.org/#History-start) 10 | 11 | Routerがすべて作成され、すべてのルートが適切にセットアップされたら、`Backbone.history.start()` を呼び出して、`hashchange` イベントの監視と、ルートのディスパッチを開始します。 12 | 13 | あなたのアプリケーションでHTML5の `pushState` サポートを使いたいということを示すには、`Backbone.history.start({pushState: true})` を使ってください。 14 | 15 | もしあなたのアプリケーションがドメインのルートURL `/` で提供されていない場合、ルートが本当はどこにあるのかを、かならず、このようなオプションでHistoryに教えてください: `Backbone.history.start({pushState: true, root: "/public/search/"})` 16 | 17 | 呼び出されたとき、もし現在のURLにうまくマッチするルートがあれば、`Backbone.history.start()` は `true` を返します。もし現在のURLにマッチするルートが定義されていなければ `false` を返します。 18 | 19 | サーバがすでにページ全体をレンダリングしていて、Historyを開始するとき初期ルートはトリガーしないで欲しいときは、`silent: true` を渡します。 20 | 21 | Internet Explorer ではハッシュベースの履歴が `