問題タブ [marionette]
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 - マリオネット/バックボーンアプリでメソッドエラーなし
「no method 'result' backbone.marionette.js:402 エラー」が表示されます。ここにトレースがあります:
...
backbone.marionette.js で:
私の呼び出しコード:
ここでタイプエラーを引き起こしている可能性のある問題について誰かが何か手がかりを持っている場合-考えを得るのに最適です。私はほとんどそこにいます。catalogList コレクションは問題ないようです - サーバーから取り込まれます。これを解読するのは難しいかもしれませんが、誰かが解決にアプローチする方法について何らかの考えを持っているかもしれません。
javascript - backback.marionetteとrequireJsを使用するWebアプリの循環依存
私は次のような状況にあります。
モジュールをロードするためにrequireJsを使用していますが、グローバル変数を使用したくありません。
main.jsは、ルーターのロードを担当します。
次に、ルーターがアプリをロードし、アプリがいくつかのサブアプリをロードします。
すべてが初期化された後、subAppsはrouter
を作成するために必要router.navigate
です。
ここにスキーマがあります:
次に、循環依存の問題が発生します。そのため、subAppのルーターは未定義になります。
コードを再編成したり、この問題を修正したりするための最良の方法は何ですか?これについていくつかの例はありますか?
javascript - Routing.navigate と document.location.hash の比較
を使用して Web アプリを作成しbackbone.marionette
ました。からMarionette.ItemView
、イベントをトリガーするとdocument.location.hash
:
1.a) URL を変更する 1.b) appRoutes をトリガーする
Routing.navigate
同じ場所からトリガーした場合:
2.a) 期待どおりに URL を変更します。2.b) appRoutes をトリガーしません。
2.b が発生する理由は何ですか? 問題はどこにあるのでしょうか?
ありがとう。
javascript - Marionette.CompositeView、Marionette.ItemViewにパラメーターを渡す方法
Marionette.ItemViewからapp.ventにアクセスしたいと思います。
たぶん、オプションはパラメータ(app.vent
)をMarionette.ItemView
からに渡すことかもしれませんMarionette.CompositeView
。
ここに私のコード:
何か案は?
PS:
循環依存の問題があるため、itemViewからアプリにアクセスできません。
backbone.js - バックボーン (おそらくマリオネット) アプリ内の複数のルーター
現在、バックボーン アプリ用に複数のルーターを定義しています (まだマリオネットではありません)。
ご覧のとおり、変数を使用してナビゲートしています。したがって、どのルーターを呼び出すかを知る必要があります。どういうわけかコードを別々のクラスに整理することは可能ですが、ナビゲートしたいときappRouter.navigate "something"
は、それがどのルーターであるかを知る必要はなく、呼び出すだけですか? マリオネットは大きなルーターを持たないことを推奨していますが、推奨される方法/例はありません
javascript - ItemView へのバインディング変更イベント
Marionette.ItemView
対応機種変更時に使用して作成したリストを再レンダリングしたいItemView
。
このタスクをアクティブにする最善の方法について何か考えはありますか?
PS:
で次のコード(1)を試してみるとMarionette.ItemView
、
モデルを保存するときに次のエラーが発生します(2)。
(1)
(2)
javascript - Marionette.CompositeView と Marionette.ItemView の間のイベント
と の 2 つのモジュールがitemView.js
ありListView.js
ます。
データをフェッチすると、すべてが機能します。
問題はitem view
、対応機種を変更した場合の(1)についてです。
a) (2)は、モデルが(3) と等しい値をListView.js
持つすべてのオブジェクトを表示しますclosed
false
b) closeTask
(1) のアクションは、モデルの値を
からclosed: false
に変更します。closed: true
c) b) が発生しても何も変化しませんが
、ページをリロードすると正しい結果が得られます (closed
値が等しいモデルtrue
は表示されません)。
この問題を解決するにはどうすればよいですか?
(1)
(2)
(3)
PS:
コレクションをフェッチすると、サーバーは、closed 属性が false に等しいモデルのみを提供します。
backbone.js - Backbone Marionette 取得完了前に表示中
ばかげたことをしていることはわかっていますが、バックボーンのマリオネット アプリで意味のないテンプレート エラーが表示されます。fetch イベントが発生する前に、単一のアイテムをレンダリングしているように見えます。
そして私のhtmlページは
タグテンプレートから口ひげを取り除くと、1: " TagName " と表示され、フェッチが完了すると正しい番号が表示されます。
口ひげを元に戻すと、「TagName is not defined」が表示されます
私は自分のパターンの 1 つが逆になっていると感じています。近すぎて見えない。
ありがとう -マーク
backbone.js - Marionette.CompositeViewモデルを使用せずにパラメーターをテンプレートに渡す方法
私は次のような状況にあります。
(モデルが存在しません!)にメッセージを表示するためにcollection.length = 0
パラメーターをに渡したい場合。どうすれば目標を達成できますか?listTemplate
listTemplate
これが私のコードです。
-
javascript - CompositeViewのSerializeData
listView.template
についてのテンプレートを認識するために、に値を渡す必要がありますcollection.length
。
この方法でパラメーターを渡すために、serializeDataメソッドを再定義するのが1つのオプションだと思います。
私が開始したときapp
、collection
はまだフェッチされていないので:
1.a )collection.legth = 0
2.b)テンプレートはhas_tasks = false
期待どおりに取得されます。
2.a)フェッチ後collection.length is > 0
、
2.b)が呼び出され、serializeData
それが配置
されます。2.c)テンプレートが保持されているため、テンプレートがレンダリングされていないようです。has_tasks = true
has_tasks = false
何か考えは2.c
?