問題タブ [mithril.js]
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.
mithril.js - 開始パラメーター付きのモジュールコントローラー
を使用する場合m.module
、最初のレンダリングが正しいデータで開始されるように、コントローラー コンストラクターに引数を提供したいと思うことがよくあります。ただし、Mithril のドキュメントと例では、常にパラメーターなしで表示module.controller()
されmodule.vm.init()
ます。
この問題を回避するにmodule.controller(initData)
は、この小さなユーティリティ関数を使用して、既存の m.Module をラップおよび拡張することにしました。
質問:
- これはアンチパターンですか?カスタム外部データを使用してモジュールをインスタンス化する別の推奨される方法はありますか?
- これにより、m.route で問題が発生しますか? ソースコードで再帰呼び出しについて言及されているのを見ましたが、理解できませんでした。
m.module
上記の 2 点に続いて、意図的な設計選択のためのパラメーターの欠如はありますか?
ああ...そして、既存のドキュメントと議論に関わってくれたすべての人に感謝します。
javascript - ビューから非同期ロード モジュール関数を呼び出す
http://lhorie.github.io/mithril-blog/integrating-mithril-で説明されている非同期モジュールローダー手法を使用して、別のミスリルモジュールを含む JS ファイルをオンデマンド (ユーザー入力) で非同期にロードしようとしています。 and-requirejs.html
これを機能させる唯一の方法は、非同期ロード モジュール関数を呼び出し、ビューの onlick 関数から呼び出されるベース モジュール コントローラーから、新しくロードされたモジュールのコンストラクターをインスタンス化することでした。ビューから新しいコントローラーをインスタンス化する (またはインスタンス化する関数を呼び出す - これが私の場合です) べきではないとドキュメントに記載されているため、これがアンチパターンと見なされるかどうか、およびこれを行うためのより良い方法があるかどうか疑問に思っていました。
前もって感謝します。
javascript - background:true を使用する場合、MithrilJS で m.request の値を使用するにはどうすればよいですか?
プロジェクトで m.request を使用していますが、長時間実行される可能性があるリクエストがあるため、 で実行したいと考えていbackground:true
ます。ただし、値が generated に設定されることはないようm.prop
です。
このスタック オーバーフローの回答に基づいた例で jsFiddle を作成しました: http://jsfiddle.net/u5wuyokz/9/
私が期待しているのは、ビューへの 2 番目の呼び出しの応答値が であるはずですが、ctrl.test.data()
まだ があるようundefined
です。コードでPoint A
は、正しい値をログに記録します。ただし、Point B
ではログに記録false, undefined
し、次にtrue, undefined
.
何か間違ったことをしているのか、それともこれが期待どおりの動作なのかはわかりません。
jsFiddle からのコード:
mithril.js - Mithril で m.request をクラスに自動キャストする際の問題
クラスを定義し、それにm.request
Web サービスの JSON 応答をキャストするよう求めていますが、各クラス プロパティは に等しくn/b()
なり、ビューは各プロパティを としてレンダリングしますfunction (){return arguments.length&&(a=arguments[0]),a}
。
m.request で JSON 応答をクラスに自動キャストしようとしない場合、ビューは問題なくレンダリングされ、Web サービスによって返される JSON オブジェクトが有効な JSON であることがわかります。
クラスを使いたい。なにが問題ですか?
Web サービスによって返される JSON の編集済みサンプルを次に示します。
これが私のMithrilアプリです:
javascript - ミスリルハローワールドMVCの例が機能しない
Mithril の hello world MVC のサンプルがうまく動作しません。
Mitrhil のホームページからコピーしたコードを次に示します。m.request({method: "GET", url: "pages.json"});
私が行った唯一の変更は、手動で生成されたページ オブジェクトへのメソッド呼び出しを交換したことです。
ご覧のとおり、上記のjsFiddleの例は機能しませんが、別の Mitrhil の例である todo アプリjsFiddleは正常に機能します。
基本的な MVC Mitrhil の例が Todo アプリのように単純に機能し、ユーザーが React の場合と同様にフォークできるように jsFiddle または CodePen の例にリンクすることは理にかなっていると思います。
javascript - 他の js ファイルをインポートする LiveScript をコンパイルする
LiveScript の仕組みを誤解していると思われますが、別の js ファイルを .ls ファイルにインポートしてコンパイルするにはどうすればよいですか? たとえば、次のような DOM ドキュメントにアクセスしたいと思います。
mithril.js をロードします (これは同じローカル ディレクトリにあります)。
しかし、次のようにコンパイルすると:
これは現在、「ドキュメント」またはその他のミスリル固有の変数(「m」など)が見つからないことを示しています。