問題タブ [backbone-views]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
backbone.js - すべてのビューに関連付けられたバックボーンビューイベント
バックボーンで最初のアプリケーションを実行していますが、イベントをアタッチしようとすると奇妙なことが起こります。
私はこれまでにこのコードを入手しました:
ご覧のように。
私はすべての女の子を保存するためにコレクションを使用しており、データはルビーのRESTAPIから取得されます。
各女の子は新しいモデルインスタンスを作成し、その中にビューインスタンスをアタッチしました。
それが良い習慣かどうかはわかりませんが、それを行うためのより良い方法を考えることはできません。
各ビューは、一意のIDを持つコンテンツを作成します。girl-1girl-2そして続けます。
これで、テンプレートに編集ボタンがあります。私の最初のアイデアは、onclickイベントを攻撃し、編集ビューをトリガーしてレンダリングすることです。
それは期待どおりに機能しています。
これまでの問題は次のとおりです。
イベントがトリガーされると、レンダリングされたビューを「所有」するものではなく、すべてのコレクション(女の子)が編集ビューを起動します。
私の質問は私が間違っていることですか?
どうもありがとう
javascript - ボタンOnclickイベントとbackbone.jsビュー
私は現在、次のhtmlファイルを持っています:
私はbackbone.jsビューファイルに次のものがあります:
ボタンをクリックすると、両方の関数で未定義の関数エラーが表示されます。バックボーンを使用するのは初めてです。
backbone.js - _.bindAll関数
私の質問はおそらく非常に単純な答えを必要としますが、それにもかかわらず、私は簡単に見つけることができませんでした。
私が取り組んでいるバックボーンアプリケーションには、いくつかのビューがあります。さまざまなビューを定義するときは、初期化関数で_.bindAllを使用して、「this」ビューオブジェクトをビューのレンダリング関数に接続します。例えば:
DiscussedItemViewの新しいインスタンスを作成するには、次のようにします。
コードは正常に機能します。それでも、discussion_agenda_rowでrender()関数を明示的に使用する必要がある理由がわかりません。新しいDiscussedItemViewインスタンスを初期化すると、自動的にrender関数が呼び出されると思いましたが、discussion_agenda_row.render();
行を削除するとHTMLが表示されません。どこが間違っているの?
ありがとう、アレクサンドラ
backbone.js - backbone.jsを使用してビュー内のボディクリックを聞く
このようなモーダルダイアログを作成しています
次に、このような別のビュー内に作成します
これはうまく機能しますが、ボディクリック時またはエスケープを押したときにダイアログを閉じたい場合の最良の方法は何ですか?
javascript - Backbone.Marionetteを使用してアイテムをリストに作成するためのアプリケーションを構築するにはどうすればよいですか?
これは、マリオネットの使用をまだ混乱させていることの1つです。
コメントのリストを表示し、新しいコメントを作成するためのシンプルなインターフェイスを想像してみてください。私が現在これを構築している方法は、CommentApp
私が以下に含めたようなものです。
私の質問には2つの部分があると思います。
これは、このタイプのアプリケーションを構築する方法ですか?可能な場合はBBCloneMailサンプルアプリをフォローしようとしましたが、コレクションに新しいアイテムを作成する例が提供されていないようです。
なぜ私がそれを呼んでみたところにlayout.listRegion
以下が戻ってくるのですか?より一般的には、ネストされたレイアウトでイベントのトリガーとバインドを処理する決定的な方法があります。かなり混乱しているようです。undefined
.show()
'layout:rendered'
'comment_layout'
テンプレートは単なる基本的なコンテナテンプレートです。
そして、私はJST
それをレンダリングするために使用しています。このコードでレンダリング関数をオーバーライドしました:
javascript - 標準のメニューバー/詳細ページのモバイル UI のバックボーン ビュー デザイン
モバイル Web アプリを作成していますが、バックボーン ビューの設計と配線に苦労しています。
私が達成したいことを説明しましょう。
ご覧のとおり、上の画像はいくつかの UI コンポーネントを示しています。
- 戻るボタン、検索ボタン、メニュー ボタンを備えたツールバー ビュー
- リスト付きのタブ付きビュー
- 詳細ビュー
- メニュー表示
動作に関する注意事項:
- メニュー ボタンをタップすると、メニューがオーバーレイされてアニメーション化されます。
- リスト ビューと詳細ビューには、ハッシュタグを使用して永続的にアクセスできます
とりあえず、ツールバー、メニュー、リスト、詳細のビューを作成しました。しかし、明らかに、ビュー間に何らかの相互作用が必要であり、それを処理する方法がわかりません。
解決すべき問題:
- 詳細またはリストに移動するときに、すべてのビューをレンダリングする必要がありますか? そうでない場合、ツールバーを更新してその関係を処理する方法
- タブ2から詳細に移動してリストに戻るときに、どのタブが表示されたかを覚えておく方法。タブの切り替えだけを覚えておくべきではないため、ハッシュタグを使用して表示されているタブを覚えておくことはできません。
私はtbranyen layoutmanagerを調べてきましたが、完全に分離されたビューを想定しているようです。
scroll - バックボーンビューをレンダリングした後、一番下までスクロールします
私は現在、Backboneを使用したメッセージングシステムに取り組んでいます。レンダリング時にCollectionViewの最後の要素までスクロールしたい。
ページ上のリンクをクリックするとこれを機能させることができますが、ビューのレンダリングで機能させたいと思います。
リンクで使用しているものは次のとおりです。
ビューの定義は次のとおりです。
onRender内のページに何もないので、機能しないと思いますか?
私はウェブ開発にとても慣れていないので、優しくしてください!
とにかく、私は本当に助けていただければ幸いです!
javascript - バックボーン.jsビューを既存の要素にアタッチするか、elをDOMに挿入するか
私は最初の実際の非チュートリアルBackboneアプリを実装していますが、バックボーン.jsの使用の側面について、2つの質問があります。これは、ビューのレンダリングel
をDOMに挿入することと、使用することとの関係です。の既存の要素el
。私はここであなた方全員にいくつかの「教えられる瞬間」を提供すると思います、そして助けに感謝します。
Webで見られるほとんどのバックボーンビューの例では、ビューを作成するときにtagName、id、classNameを指定し、それによってDOMからアタッチされていないelを作成します。それらは通常、次のようになります。
ただし、チュートリアルでは、レンダリングされたelをDOMに取り込むことを推奨する方法を説明できるとは限りません。私はそれをいくつかの異なる方法で見てきました。したがって、私の最初の質問は、ビューのrenderメソッドを呼び出してそのelをDOMに挿入するのに適切な場所はどこですか?(必ずしも同じ場所である必要はありません)。ルーター、ビューの初期化またはレンダリング機能、またはルートレベルのドキュメント準備機能で実行されるのを見てきました。($(function ()
)。これらの作業のいずれかを想像できますが、それを行う正しい方法はありますか?
次に、HTMLマークアップ/ワイヤーフレームから始めて、html部分をバックボーンビューに対応するjsテンプレートに変換します。ビューにアタッチされていない要素をレンダリングさせ、それを固定するためにhtmlにアンカーポイントを提供するのではなく、ビューの要素が1つだけで、それが消えない場合は、より自然な感じがします。空になった既存のラッパー要素(多くの場合、div
またはspan
)をel
それ自体として使用します。そうすれば、添付されていないelを挿入する場所をドキュメント内で見つけることを心配する必要がなくなり、最終的には次のようになります(余分なレイヤーに注意してください)。
したがって、私の2番目の質問の一部は、基本的に静的なビューの場合、ページのHTMLの既存の要素をビューのHTMLとして直接使用することに何か問題がありますel
か?このようにして、すでにDOMの適切な場所にあることがわかり、renderを呼び出すと、ページのビューがすぐにレンダリングされます。これは、すでに存在する要素をビューの構成要素に「el」として渡すことで実現できます。そうすれば、私はそれをDOMに貼り付けることを心配する必要がないように思えます(質問1を一種の議論の余地があります)、renderを呼び出すとすぐにDOMが更新されます。例えば
これは、ページの静的ビューに対して行うのに問題のない方法ですか?つまり、これらのビューは1つだけであり、どのような状況でも消えることはありません。それとももっと良い方法はありますか?ビューの使用方法に基づいて、さまざまな方法(ルーター、親ビュー、ページの読み込みなど)があることに気付きましたが、現在は最初のページの読み込みを確認しています。使用事例。
ありがとう
javascript - バックボーン + アンダースコア: テンプレート変数が見つかりません。+ モデル属性に正しくアクセスするには?
Backbone を使い始めたばかりで、目標はシンプルなスライドキャスティング アプリケーションです。私はRESTインターフェースを持っています
/slidecasts
利用可能なすべてのプレゼンテーションのリストを取得します。返される json は次のようになります。
単一のプレゼンテーションにアクセスして、たとえば最初のスライドを取得したい場合は、次のように簡単に実行できます。
戻り値:
プレゼンテーションとスライドをバックボーン モデルとして表現したいと考えています。また、最後にスライド画像、タイトル、いくつかのメモ、および進む/戻るボタンを表示するバックボーン ビューも必要です。
これはこれまでの私のコードです:
これはコレクションに対して機能しますが、そこから単一のスライドの情報を取得する方法がよくわかりません。slidecast.slide("0") のようなものは可能ですか?
また、ビューのテンプレートに関していくつかの問題があります。
私のhtmlは次のようになります:
ビューで変数を定義したにもかかわらず、テンプレート *presentation_name* に渡したい変数名が定義されていないというエラーが表示され続けます。
backbone.js - バックボーン - コレクション内に複数のモデルを作成 - サーバーサイド
ユーザーが自分のデータをアップロードするためのフォームを提供します。ajax-form-submit を使用し、データを解析して多数のモデル (アップロードされた csv の行ごとに 1 つ) を作成します。
ここで、事前定義されたコレクションにモデルを作成したいと考えています。
モデルの配列を取る add を使用できますが、残念ながら、サーバー側で PUSH を送信しません。モデルごとに .create を反復して作成できることはわかっていますが、10,000 個のモデルがあるとしましょう。10,000 回の呼び出しが作成されます。不合理に聞こえます。何か見逃しましたか?
もう 1 つの方法は、サーバーで複数のモデルを受け入れ、.ajax 呼び出しを使用してから、UI レンダリングのためにコレクションに手動で追加することです。
最適なルートを探しています。ありがとう。