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

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

6
Backbone.js:現在のルートを取得
バックボーンを使用して、現在のルートの名前を取得することは可能ですか?ルート変更イベントにバインドする方法は知っていますが、変更間の別の時間に現在のルートを特定できるようにしたいと考えています。
137 backbone.js 

10
Backbone.jsでサブビューをレンダリングして追加する方法
ネストされたビューのセットアップがあり、アプリケーションで多少深くなる可能性があります。サブビューを初期化、レンダリング、および追加する方法はたくさんありますが、一般的な方法は何なのでしょうか。 ここに私が考えたカップルがあります: initialize : function () { this.subView1 = new Subview({options}); this.subView2 = new Subview({options}); }, render : function () { this.$el.html(this.template()); this.subView1.setElement('.some-el').render(); this.subView2.setElement('.some-el').render(); } 長所:追加で正しいDOM順序を維持することを心配する必要はありません。ビューは早い段階で初期化されるため、render関数では一度にすべてを実行する必要はありません。 短所:コストがかかる可能性のあるredelegateEvents()を強制されますか?親ビューのレンダリング関数は、発生する必要のあるすべてのサブビューレンダリングで乱雑になりますか?tagName要素のを設定する機能がないため、テンプレートは正しいtagNamesを維持する必要があります。 別の方法: initialize : function () { }, render : function () { this.$el.empty(); this.subView1 = new Subview({options}); this.subView2 = new Subview({options}); this.$el.append(this.subView1.render().el, this.subView2.render().el); …

8
「単一ページ」JS WebサイトとSEO
今日、強力な「単一ページ」JavaScript Webサイトを作成するためのクールなツールがたくさんあります。私の意見では、これはサーバーにAPIとして機能させ(それ以上は何もさせない)、クライアントにHTML生成のすべてのものを処理させることによって正しく行われます。この「パターン」の問題は、検索エンジンのサポートがないことです。私は2つの解決策を考えることができます: ユーザーがWebサイトにアクセスしたら、サーバーがクライアントのナビゲーションとまったく同じようにページをレンダリングできるようにします。したがって、http://example.com/my_path直接移動すると、サーバーは、/my_pathpushState を使用して移動した場合と同じようにレンダリングします。 サーバーに、検索エンジンボット専用の特別なWebサイトを提供させます。通常のユーザーがhttp://example.com/my_pathサーバーにアクセスする場合は、JavaScriptを多用したバージョンのWebサイトを提供する必要があります。しかし、Googleボットがアクセスした場合、サーバーは、Googleにインデックス登録させたいコンテンツを含む最小限のHTMLを提供する必要があります。 最初のソリューションについては、ここでさらに説明します。私はこれをしているウェブサイトで働いていました、そしてそれはとても良い経験ではありません。それはDRYではなく、私の場合、クライアントとサーバーに2つの異なるテンプレートエンジンを使用する必要がありました。 私はいくつかの古いフラッシュWebサイトの2番目の解決策を見たと思います。私はこのアプローチが最初のアプローチよりもはるかに好きで、サーバーに適切なツールがあれば、非常に簡単に実行できます。 だから私が本当に思っているのは次のとおりです: あなたはもっと良い解決策を考えることができますか? 2番目のソリューションの欠点は何ですか?通常のユーザーと同じようにGoogleボットにまったく同じコンテンツを提供していないことがGoogleで判明した場合、検索結果で罰せられるのでしょうか?

12
Underscoreの外部テンプレート
Underscoreテンプレートを使用しています。テンプレートとして外部ファイルを添付することは可能ですか? バックボーンビューで私は: textTemplate: _.template( $('#practice-text-template').html() ), initialize: function(){ this.words = new WordList; this.index = 0; this.render(); }, 私のhtmlでは: <script id="practice-text-template" type="text/template"> <h3>something code</h3> </script> それはうまくいきます。しかし、私は外部テンプレートが必要です。私が試す: <script id="practice-text-template" type="text/template" src="templates/tmp.js"> または textTemplate: _.template( $('#practice-text-template').load('templates/tmp.js') ), または $('#practice-text-template').load('templates/tmp.js', function(data){ this.textTemplate = _.template( data ) }) しかし、それはうまくいきませんでした。

1
Backbone.js:バックボーンコレクションのモデルのインデックスを取得する方法
コレクション内のモデルのインデックスを見つける方法はありますか? ビューで、現在作業中のモデルがあるとしましょう。そのモデルは、現在内部にあるコレクション内のインデックスを吐き出すことができますか?現在のターゲットの上または下のモデルにアクセスしたいので、これを実行します。 つまり、次のようなものがあります。 index = this.model.index modelAbove = this.collection.at( index-1 ) 私のデータはネストされたセットなので、「lft」列または「rgt」列で検索を実行できますが、Backboneがすでにこの情報を利用できる場合は、ホイールを再発明したくありませんでした。
119 backbone.js 

12
Backbone.jsのネストされたモデル、アプローチ方法
サーバーから次のJSONを取得しました。これで、ネストされたモデルでモデルを作成したいと思います。これを達成する方法がどちらなのかはわかりません。 //json [{ name : "example", layout : { x : 100, y : 100, } }] これらを次の構造を持つ2つのネストされたバックボーンモデルに変換してください。 // structure Image Layout ... したがって、レイアウトモデルを次のように定義します。 var Layout = Backbone.Model.extend({}); しかし、画像モデルを定義するために以下の2つの技術(ある場合)のどちらを使用する必要がありますか?以下のAまたはB? あ var Image = Backbone.Model.extend({ initialize: function() { this.set({ 'layout' : new Layout(this.get('layout')) }) } }); または、 B var Image = …

15
バックボーンビュー:親からのイベントの継承と拡張
バックボーンのドキュメントには、 イベントプロパティは、イベントハッシュを返す関数として定義することもできます。これにより、プログラムでイベントを簡単に定義したり、親ビューから継承したりできます。 親のビューイベントをどのように継承して拡張しますか? 親ビュー var ParentView = Backbone.View.extend({ events: { 'click': 'onclick' } }); 子ビュー var ChildView = ParentView.extend({ events: function(){ ???? } });


9
Backbone.jsはネストされたオブジェクト属性を取得および設定します
Backbone.jsのget関数とset関数について簡単な質問があります。 1)以下のコードを使用して、obj1.myAttribute1を直接「取得」または「設定」するにはどうすればよいですか? 別の質問: 2)モデルでは、デフォルトオブジェクト以外に、バックボーンのgetおよびsetメソッドを介してアクセスできるように、モデルの他の属性をどこに宣言できますか、または宣言する必要がありますか? var MyModel = Backbone.Model.extend({ defaults: { obj1 : { "myAttribute1" : false, "myAttribute2" : true, } } }) var MyView = Backbone.View.extend({ myFunc: function(){ console.log(this.model.get("obj1")); //returns the obj1 object //but how do I get obj1.myAttribute1 directly so that it returns false? } }); 私はできることを知っています: this.model.get("obj1").myAttribute1; しかし、それは良い習慣ですか?

8
jQuery / JavaScriptコードを整理する最良の方法(2013)[終了]
ここで何が尋ねられているのかを知るのは難しい。この質問は、あいまいで、あいまいで、不完全で、過度に広い、または修辞的であり、現在の形では合理的に回答することができません。再開できるようにこの質問を明確にするヘルプについては、ヘルプセンターに アクセスしてください。 7年前休業。 問題 この回答は以前に回答済みですが、古くて最新ではありません。1つのファイルに2000行を超えるコードが含まれていますが、誰もが知っているように、特にコードを調べたり、新しい機能を追加したりする場合、これは悪い習慣です。現在と将来のために、コードをよりよく整理したいと考えています。 多数のボタン、UI要素、ドラッグ、ドロップ、アクションリスナー/ハンドラー、および複数のリスナーが同じ関数を使用する可能性のあるグローバルスコープ内の関数を備えたツール(単純なWebサイトではない)を構築していることを述べておく必要があります。 コード例 $('#button1').on('click', function(e){ // Determined action. update_html(); }); ... // Around 75 more of this function update_html(){ .... } ... その他のサンプルコード 結論 私は本当にこのコードを整理して、繰り返し使用しないで、新しい機能を追加したり、古い機能を更新したりできるようにする必要があります。一人でこれに取り組みます。一部のセレクターは100行のコードになる場合があります。その他のセレクターは1です。少し調べてみると、require.js繰り返しが多く、実際には必要以上のコードを記述していることがわかりました。私はこの基準に当てはまる可能性のある解決策を受け入れ、リソース/例へのリンクは常にプラスです。 ありがとう。

3
Backbone.js: `extend` undefined?
Backbone.jsを使い始めたところです。バックボーン(どちらかの開発/本番バージョン)を含めるだけでエラーが発生します。 Uncaught TypeError: Cannot call method 'extend' of undefined 128行目: // Attach all inheritable methods to the Model prototype _.extend(Backbone.Model.prototype, Backbone.Events,

3
Restfulバックエンド用のEmber.jsまたはBackbone.js [終了]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 ember.jsは、backbone.jsとは対照的に、より重いアプローチであることはすでに知っています。私は両方について多くの記事を読みました。 Rails Restバックエンドのフロントエンドとして、どのフレームワークがより簡単に機能するかを自問しています。backbone.jsについては、レストバックエンドを呼び出すためのさまざまなアプローチを見ました。残りは、「データ」や「リソース」のようないくつかのライブラリを含める必要があるようです。これにはなぜ2つのライブラリがあるのですか? それで、より良い選択は何ですか?フロントエンドとバックエンドを接続する多くの例もありません。これに対するバックエンドレストコールの良い動作例は次のとおりです。 URI:../restapi/topics GET auth認証情報:admin / secrect形式:json

3
バックボーン。「el」の混乱を表示
ビューはどのように処理する必要がありますelか?設定する必要があります。そうしないと、イベントは発生しません(ここを参照)。 しかし、それはすでにページ上にある要素であるべきでしょうか?私のアプリでは、(jQueryテンプレート)テンプレートをFancyboxにレンダリングします。elその場合、何をすべきでしょうか?

4
モデルのフェッチ時に1をtrueに、または0をfalseに変換する方法
mysqlデータベースからのJSON応答で設定されたモデルがあります。モデルデータは、データベースのboolean / tinyint型のフィールドにtrueまたはfalseに設定している使用しています1か0。 私の見解では、下線付きのブール値をチェックするバインディングがあります_.isBoolean。もちろん、モデルがデータを受け取ると、データはtrueまたはfalseで設定される1か、0代わりに設定され、_.isBooleanチェックは失敗します。 とにかく、mysqlからのJSON応答を1orの代わりにブール値のtrueまたはfalseに正しく設定0する方法はありますか、またはできれば、フェッチtrueまたはビューがレンダリングされる前に、モデルをキャストまたはにfalse基づいて更新する方法がありますそれは1または0プロパティですか? たとえば、モデルのデータは{"isChecked":"1"}、必要なときに次のようになります。{"isChecked":true} あなたが持っているかもしれない提案をありがとうございました!

5
RESTを使用して複数のレコードを削除する
複数のアイテムを削除するRESTフルな方法は何ですか? 私のユースケースは、複数のアイテムを一度に削除できる必要があるバックボーンコレクションを持っている場合です。オプションは次のようです: すべてのレコードに対してDELETEリクエストを送信します(数十のアイテムが存在する可能性がある場合、これは悪い考えのようです)。 削除するIDがURLでつながっているDELETEを送信します(つまり、「/ records / 1; 2; 3」)。 REST以外の方法では、削除対象としてマークされたIDを含むカスタムJSONオブジェクトを送信します。 すべてのオプションは理想的ではありません。 これはREST規約の灰色の領域のようです。
97 api  rest  backbone.js 

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