問題タブ [backbone-layout-manager]
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.
javascript - レンダリング後のバックボーン レイアウト マネージャー
Backbone と Layout Manager を使用しています。MyView.js 内に次のコードがあります。
BookView.js 内には afterRender メソッドがあります。
モデルの books プロパティに 6 つの項目があり、render()
それぞれの本を呼び出します。最終的に私が得るのは、一度だけ記録された「レンダリング後」です。なにが問題ですか?欠落している 5 つの「レンダリング後」ログはどこにありますか??
backbone.js - Backbone LayoutManager が余分に生成するのを止めることはできますか??
これらのテンプレートを考えると:
そして、このビューのセットアップ:
私はこの出力を得ます:
代わりにこの出力を取得するにはどうすればよいですか?
backbone.js - バックボーン ボイラープレート レイアウト マネージャー
Backbone Bolierplate 内で LayoutManager を使用する方法について、誰かが説明/例を提供できますか?
app.js 内で、メインのアプリ オブジェクトを拡張する useLayout 関数を確認できます。ここでは、基本レイアウト要素を設定しているようです:
あれは正しいですか?もしそうなら、どうにかしてアプリケーション ルーターで「UseLayout」機能を使用できますか? ...さまざまな UI 要素/ネストされたビューをメイン ビューに追加するには?
ありがとう。
backbone.js - Underscore.js「一部」はブール値を返しません
underscore.jsを使用して、リスト内の要素がtrueであるかどうかを確認しています。これがそのコーヒースクリプトコードです:
trueまたはfalseを返す代わりに、「uploading」を出力すると、次のようになります。
アンダースコアの「some」の定義は次のとおりです:http://underscorejs.org/#some。
さらに、getViewsは、https ://github.com/tbranyen/backbone.layoutmanager/wiki/Nested-viewsで定義されているバックボーンlayoutmanagerの関数です。
これをデバッグしやすくする可能性のある他の変数の出力は次のとおりです。
backbone.js - backback.layoutmanagerは、「セレクター''で`View#manage`プロパティを`true`に設定する」というエラーメッセージを生成します。
私は他の場所でこの質問をしました。しかし、答えを知っている人のために、ここでも質問します。
最近、簡単なWebアプリを作成しました。合計2つのビューがあり、ユーザーは2つのビュー間を行ったり来たりできる必要があります。setViewメソッドでアプリのビューを変更できるのは自然なことのようです。リンクをクリックしてインデックスビューからショービューに切り替えると、すべてうまく機能します。ただし、リンクをクリックしてもインデックス表示に戻れません。「セレクター''でView#manageプロパティをtrueに設定してください」というエラーメッセージが表示されるだけです。古いビューオブジェクトは別のビューに切り替えるときに破棄されているはずなので、思ったとおりに機能しない場合を除いて、なぜこのエラーが発生するのでしょうか。
以下は私のコーヒースクリプトコードの抜粋です。MyApp.Routers.Home = Backbone.Router.extend(routes:'books':'showBooksIndex''books /:id':'showBook'
MyApp.Views.BooksIndexには、BookShowビューと同様のコードがあります。
ビューをキャッシュすることもおそらく解決策です。ビューオブジェクトの再作成が回避されるため、このアプローチはこの問題を回避します。しかし、私のアプリにはたくさんの写真があるので、アプリのビューが変わるたびにサーバーからデータを取得したいと思います。それが正しい道かどうかはわかりません。洞察を共有していただきありがとうございます。
javascript - バックボーンLayoutManagerはサブビューを再レンダリングします
私はビューに素晴らしいLayoutManagerでBBBを使用しています。残念ながら、特定のサブビューを再レンダリングする方法が見つかりません。これが私の設定です:
レイアウト全体を再レンダリングしたくないのですが、Home.HomeView.render()を再度呼び出すとどうなりますか?この設定でサブビューのみをレンダリングするにはどうすればよいですか?
backbone.js - バックボーンを使用してDOMからアイテムを削除するときのメモリリーク
DOM要素が削除された後にメモリに残るという問題があります。以下に示す例を設定しました。ビュー(およびjQuery)を管理するためにバックボーンレイアウトマネージャープラグインを使用していることに注意してください。
リスト内のアイテムの1つを削除する前後に、Chromeでヒープスナップショットを作成し、2つを比較しました。
ご覧のとおり、LI要素はまだメモリ内にあります。
バックボーンレイアウトマネージャーは、ビューが削除されたときにview.unbind()とview.stopListening()を呼び出します。
以下はサンプルコードです。
ListOfViewsToDelete.js
router.js
ListOfViewsToDelete.html
ViewToDelete.html
javascript - requirejs を使用して LayoutManager をロードする際の問題
私はjsを必要とするのは初めてで、レイアウトマネージャーでバックボーンを使用しています。以下にコードを貼り付けましたが、レイアウト マネージャーを動作させることができず、次のエラーが発生します。
レイアウトマネージャーが使用されている行 (Backbone.LayoutView.extend)
});
backbone.js - サブビューのバックボーン Layoutmanager delegateEvents が機能しない
私が持っているものは次のとおりです。
のイベントViews.Child
が発生していません。ビューは確実に見つかり、foo.events は正しいイベントを返します。サブビューを挿入する複数の方法を試しましたが、delegateEvents はそれを行っていません。
他の誰かがこれに遭遇し、洞察を提供できますか?
サブビューで events プロパティと this.listenTo の両方を使用していることに言及する必要があります。それらのどれも解雇されていません。
編集:親は別のビューに追加されています:
this.$el.append( parentView.$el );
parentView
のインスタンス化されたオブジェクトはどこにありますかViews.Parent
。