タグ付けされた質問 「backbone.js」

Backbone.jsは、RESTful JSONインターフェースを備えたJavaScriptフレームワークであり、モデル、ビュー、プレゼンター(MVP)のアプリケーション設計パラダイムに基づいています。

7
<script type =“ text / template”>…</ script>の説明
今まで見たことのないものに出会っただけです。Backbone.jsのサンプルTODOアプリケーションのソース(Backbone TODO Example)では、テンプレートが内にあり&lt;script type = "text/template"&gt;&lt;/script&gt;、PHPの外見のように見えるコードが含まれていますが、JavaScriptタグが含まれています。 誰かがこれを私に説明できますか?これは合法ですか?

15
backbone.jsの目的は何ですか?
私のサイトhttp://documentcloud.github.com/backboneからbackbone.jsのユーティリティを理解しようとしましたが、それでも多くのことを理解することはできませんでした。 誰かがそれがどのように機能するか、そしてそれがより良いJavaScriptを書くのにどのように役立つかを説明することで私を助けることができますか?

21
JavaScript console.logでエラーが発生する:「メインスレッドでの同期XMLHttpRequestは廃止予定です…」
ログをコンソールに追加して、Firefoxデバッガーを使用せずにさまざまな変数のステータスを確認しています。 しかし、私が追加した多くの場所でconsole.log、私の中main.jsのファイル、私は自分自身に代わりに私の美しい小さな手書きのメッセージの次のエラーが表示されます。 メインスレッドでの同期XMLHttpRequestは、エンドユーザーのエクスペリエンスに悪影響を与えるため非推奨です。さらにヘルプが必要な場合はhttp://xhr.spec.whatwg.org/ console.logこのエラーを引き起こさないコードの使用に、どのような代替またはラッパーを追加できますか? 「間違っている」のでしょうか?

18
REST JSON APIサーバーとクライアントは別ですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 3年前休業。 私は一群のウェブアプリを一から作成しようとしています。(概要についてはhttp://50pop.com/codeを参照してください。)フロントエンドWebサイト、スマートフォンアプリ、バックエンドWebサービスなど、さまざまなクライアントからアクセスできるようにしたいので、それぞれのJSON REST API。 また、私はバックエンドで作業することを好むので、純粋にAPIに焦点を当て、ウェブサイト、iPhone、Android、その他のアプリなど、フロントエンドUIを作成するために誰かを雇うことを夢見ています。 私が取るべきアプローチを決めるのを手伝ってください: 共に歩む 非常に標準的なRails Webアプリを作成します。コントローラーで、response_withスイッチを実行して、JSONまたはHTMLを提供します。JSON応答は私のAPIです。 プロ:先例がたくさん。このように物事を行うための素晴らしい基準と多くの例。 欠点: APIがWebアプリと同じである必要はありません。if / then respond_withスイッチアプローチは好きではありません。2つの非常に異なるもの(UI + API)の混合。 RESTサーバー+ JAVASCRIPT-HEAVYクライアント JSONのみのREST APIサーバーを作成します。クライアント側JavaScriptのBackboneまたはEmber.jsを使用してAPIに直接アクセスし、ブラウザーにテンプレートを表示します。 プロ: APIとクライアントの分離が大好きです。賢い人々は、これが進むべき道だと言っています。理論的には素晴らしい。最先端でエキサイティングなようです。 欠点:先例はあまりありません。これの多くの例はうまくいっていません。公開されている例(twitter.com)は遅いと感じており、このアプローチから切り替えさえしています。 RESTサーバー+サーバー側HTMLクライアント JSONのみのREST APIサーバーを作成します。REST APIのみにアクセスする基本的なHTML Webサイトクライアントを作成します。クライアント側のJavaScriptの削減。 プロ: APIとクライアントの分離が大好きです。ただし、プレーンHTML5を提供することは、まったく簡単で、クライアントに負荷をかけません。 欠点:先例はあまりありません。これの多くの例はうまくいっていません。フレームワークもこれをサポートしていません。それへのアプローチ方法がわからない。 特に理論だけではなく、経験からのアドバイスを探しています。

1
Meteor、Ember.js、Backbone.jsの主な違いは何ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 Ember.js / Backbone.jsの学習は、しばらくの間、やることリストに載っています。Meteorがリリースされた今、Meteor、Ember.js、Backbone.jsの経験を持つ人が、これら3つのJavaScriptフレームワークの主な違いと長所と短所を、経験のない人のために要約できるかどうか疑問に思っています。 具体的には、各フレームワークの方が適しているタスクと、他のフレームワークが適していない理由を知りたいと思います。 編集:Meteorについてもう少し読んだので、Backbone.jsではなくKnockout.jsに似ているようです。したがって、Knockout.jsとの比較も歓迎します。

8
underscore.jsテンプレートのifステートメントの使用方法
underscore.jsテンプレート関数を使用しており、次のようなテンプレートを作成しました。 &lt;script type="text/template" id="gridItem"&gt; &lt;div class="griditem &lt;%= gridType %&gt; &lt;%= gridSize %&gt;"&gt; &lt;img src="&lt;%= image %&gt;" /&gt; &lt;div class="content"&gt; &lt;span class="subheading"&gt;&lt;%= categoryName %&gt;&lt;/span&gt; &lt;% if (date) { %&gt;&lt;span class="date"&gt;&lt;%= date %&gt;&lt;/span&gt;&lt;% } %&gt; &lt;h2&gt;&lt;%= title %&gt;&lt;/h2&gt; &lt;/div&gt; &lt;/div&gt; &lt;/script&gt; ご覧のとおり、すべてのモデルに日付パラメーターがないため、そこにifステートメントがあります。ただし、この方法ではエラーが発生しますdate is not defined。では、テンプレート内のifステートメントをどのように実行できますか?

7
Backbone.jsでサブビューの初期化とレンダリングを処理する方法は?
ビューとそのサブビューを初期化してレンダリングする方法は3つあり、それぞれに異なる問題があります。すべての問題を解決するより良い方法があるかどうか知りたいです。 シナリオ1: 親の初期化関数で子を初期化します。この方法では、すべてがレンダリングでスタックするわけではないため、レンダリングのブロッキングが少なくなります。 initialize : function () { //parent init stuff this.child = new Child(); }, render : function () { this.$el.html(this.template()); this.child.render().appendTo(this.$('.container-placeholder'); } 問題点: 最大の問題は、もう一度親でrenderを呼び出すと、すべての子イベントバインディングが削除されることです。(これはjQueryがどのように機能するかが原因です$.html()。)これはthis.child.delegateEvents().render().appendTo(this.$el);代わりにを呼び出すことで軽減できますが、最初の最も頻繁なケースでは、不必要により多くの作業を行っています。 子を追加することにより、レンダリング機能に親のDOM構造の知識を持たせ、必要な順序を取得できます。つまり、テンプレートを変更するには、ビューのレンダリング関数を更新する必要がある場合があります。 シナリオ2: 親のinitialize()静止画で子を初期化しますが、追加するのではなく、を使用setElement().delegateEvents()して子を親テンプレートの要素に設定します。 initialize : function () { //parent init stuff this.child = new Child(); }, render : function () { this.$el.html(this.template()); this.child.setElement(this.$('.placeholder-element')).delegateEvents().render(); } …

5
backbone.jsに基づく多くのフレームワークの実際の長所と短所は何ですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 3年前休業。 この質問を改善する 誰かが最新のbackbone.js亜種のいくつかで経験を共有できることを願っています。いくつかのプロジェクトでbackbone / underscore / requireの使用経験があり、複雑なアプリケーション構造のより高度なソリューションに向けて次のステップに進みたいと思います。 次のフレームワークが利用可能であることを知っています。 マリオネット ジェペット(マリオネットベース) チャップリン、チャップリン-チャップリンボイラープレート 椎骨 LayoutManager 胸郭 オーラ ルカ シングル バックスタック バックボーンUI ハルク BTW-大規模プロジェクトの優れた出発点 そしておそらく私はいくつかを逃した。 ここに違いについての短い紹介があります: スピーカーデッキトークリンク しかし、それは非常に一般的です。誰かがこれらのフレームワークを使用して実際のアプリケーションと経験を共有できるかどうか疑問に思っていました。 どちらかを選択する利点は何ですか?マリオネットがチャップリンよりも優れたソリューションになるのはいつですか? もちろん、明確な答えは「ニーズに最適なものを使用する」ですが、私はこれらのフレームワークで、その強さ/目的/利点または好ましいシナリオを知るための経験が不足しています。 ありがとう! 編集1: この投稿を見つけました: Backbone.Marionette vs Backbone-Boilerplate 編集2: Mathias schafer(Chaplin)によるメールでの回答: 要するに、現在の構造はすでに本番環境で使用されているため、バージョン1.0に近いものです。1.0までは、大きな新機能を追加したり、APIの変更を壊したりする予定はありません。 マリオネットは確かに世の中で最も包括的で安定したライブラリです。バックボーンを使用したJSアプリ開発のいくつかの側面に対処します。たとえば、バックボーン自体が完全に空白のままにする強力なビューレイヤーがあります。もちろん、いくつかの側面があなたの要求を満たさないことに気付くでしょう、そしてあなたはマリオネットの周りに構造をセットアップする必要性を感じるかもしれません。 対照的に、チャップリンは、バックボーンアプリのかなり小さいが非常に重要な側面、つまりアプリの全体的な構造とモジュールのライフサイクルに焦点を当てています。これに関して、チャップリンは非常に好意的であり、ライブラリよりもフレームワークに似ています(「コードがライブラリを呼び出す、フレームワークがコードを呼び出す」など)。Chaplinは、個々のアプリケーションモジュールの上に位置し、アプリ全体の状態を制御するいくつかの中央クラスを提供します。これにより、たとえばRuby on Railsが行うような従来の構造がアプリに与えられます。 チャップリンでは、コントローラーにマップするいくつかのルートを宣言し、ルートが一致するとチャップリンはコントローラーを起動します。また、古いコントローラーの破棄、およびコントローラーが作成することになっているメインビューの表示と非表示も処理します。これは基本的な考え方ですが、チャップリンは醜い細部を処理して、スムーズに実行できるようにします。 この構造には2つのプリンシパルがあります。-モジュール化、デカップリング、サンドボックス-パブリッシュ/サブスクライブとメディエーターを使用したモジュール間の通信 もちろん、これらのパターンはソフトウェア開発の世界では新しいものではなく、ChaplinはそれらをBackbone.jsアプリに適用する唯一のライブラリではありません。 Chaplinはまた、非常に洗練されたCollectionViewなどのビューレイヤーの拡張機能も提供しますが、リージョンとレイアウトを備えたマリオネットほどではありません。しかし、チャップリンビューが提供する手段を使用して、このようなメタクラスを記述することは比較的簡単です。

5
双方向バインディングとは何ですか?
私は、Backboneが双方向バインディングを行わないことをたくさん読みましたが、この概念を正確に理解していません。 誰かが、MVCコードベースで双方向バインディングがどのように機能し、バックボーンではどのように機能しないかの例を教えてもらえますか?

6
RequireJSを使用したバックボーンとアンダースコアの読み込み
私はRequireJSでバックボーンとアンダースコア(およびjQuery)をロードしようとしています。BackboneとUnderscoreの最新バージョンでは、それはちょっとトリッキーなようです。1つは、Underscoreがモジュールとして自動的に登録することですが、BackboneはUnderscoreがグローバルに利用可能であると想定しています。また、Backboneはそれ自体をモジュールとして登録していないように見えるため、他のライブラリとの一貫性が失われていることにも注意してください。これは私がその作品を思いつくことができる最高のmain.jsです: require( { paths: { 'backbone': 'libs/backbone/backbone-require', 'templates': '../templates' } }, [ // jQuery registers itself as a module. 'http://cdnjs.cloudflare.com/ajax/libs/jquery/1.7/jquery.min.js', // Underscore registers itself as a module. 'http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.2.1/underscore-min.js' ], function() { // These nested require() calls are just due to how Backbone is built. Underscore basically says if require() // …

8
ChromeでJavaScriptのメモリリークを見つける
バックボーンビューを作成し、イベントにハンドラーをアタッチし、ユーザー定義クラスをインスタンス化する非常に単純なテストケースを作成しました。このサンプルの[削除]ボタンをクリックすると、すべてがクリーンアップされ、メモリリークは発生しないはずです。 コードのjsfiddleは次のとおりです:http ://jsfiddle.net/4QhR2/ // scope everything to a function function main() { function MyWrapper() { this.element = null; } MyWrapper.prototype.set = function(elem) { this.element = elem; } MyWrapper.prototype.get = function() { return this.element; } var MyView = Backbone.View.extend({ tagName : "div", id : "view", events : { "click #button" : …


4
パラメータを使用したBackbone.jsフェッチ
ドキュメントに従って、私はしました: var collection = new Backbone.Collection.extend({ model: ItemModel, url: '/Items' }) collection.fetch({ data: { page: 1} }); URLは次のようになります: http://localhost:1273/Items?[object%20Object] のようなものを期待していた http://localhost:1273/Items?page=1 では、fetchメソッドでどのようにパラメータを渡すのですか?

1
Angular.js対Knockout.js対Backbone.js [終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 この質問を改善する 私の個人的なプロジェクトでは、KnockoutまたはAngularまたはBackboneの使用を検討しています。私は、サーバー側のものと連携するために、より大きく、より長時間実行されるクライアント側の相互作用を構築する必要があります。 データドリブンユーザーインターフェイスを管理するシンプルで効果的な方法が欲しいのですが。 実現可能性とパフォーマンスの側面に基づいて、上記の私の問題を解決するためにどのフレームワークを選択しますか?

3
Backbone.syncをオーバーライドする方法は?
私はBackbone.jsを試していますが、試みていることの1つはリモートAPIを呼び出すことです。そのため、ドキュメントを理解しているので、Backbone.syncをオーバーライドできる必要があります。 ドキュメント自体にその方法の例はありません。また、Backboneのgoogleグループはないようです...誰かがこれを行う例を指摘できますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.