私のジレンマは、AMDモジュールがグローバル変数を設定したり読んだりするべきではありません。しかし、データモデルには多くの別々のウィジェット(共有モデル)によって使用されるプロパティが含まれていると言えば、各ウィジェットがデータモデルオブジェクトの独自のインスタンスを保持するとは思えません。では、プロパティを取得および設定したり、プロパティの変更を監視する必要があるすべてのウィジェットがそうすることができるように、どこに配置しますか?データモデルをdojoアプリケーションに配置する場所はどこですか?
3
A
答えて
5
シングルトンパターンを使用することができます。
シングルトンは、名前空間の汚染と名前の衝突の 関連するリスクを制限するために特に重要 JavaScriptでグローバル変数の必要性を減らします。 Source。
シングル・トーン・パターンをDojoに実装するには、シングル・トーン・オブジェクトであるAMDモジュールを作成できます。
次の例では、App
というAMDモジュールの定義があります。 "public"プロパティdata
には、共有データを表すオブジェクトが含まれている可能性があるため、別々のAMDモジュールであるウィジェット内で使用できます。
ファンクションinit
は、シングルトーンオブジェクトを初期化し、プロパティdata
(たとえば、Server APIに要求を行う)を設定するために使用できます。
bootstrap
AMDモジュール(アプリケーションのエントリーポイント)は、初めて、app
AMDモジュールを読み込んで初期化する方法を示しています。ウィジェット内の "共有"データを取得する必要があるときはいつでもこのようなアプリとデータをリクエストできますapp().data
;
app.js
define([
], function (
) {
'use strict';
var _instance;
function _App() {
}
_App.prototype = {
// data: [public] Object
// Data for your app.
data: null,
init: function() {
// summary:
// Initializes and fetch some data from the server.
}
};
return function _getSingleton() {
// summary:
// Gets singleton object.
return (_instance = (_instance || new _App()));
};
});
bootstrap.jsが
require([
'app'
], function (
app
) {
'use strict';
// module:
// bootstrap
// summary:
// Application bootstrap with the main responsibility to initiate modules (single tones).
// initializes module app
app().init();
});
関連する問題
- 1. MVCアプリケーションにEntity Frameworkデータモデルを配置する場所は?具体的な例
- 2. 一般に、アプリケーションにSQLクエリを配置する場所はどこですか?
- 3. resources.resxをASP.NET Webアプリケーションに配置する場所はどこですか?
- 4. Rails 3:カスタムバリデータークラスを配置する場所はどこですか?
- 5. js_pluginsとcss_pluginsを配置する場所はどこですか?
- 6. UITableViewを配置する場所はどこですか?
- 7. eclipseからJavaFXプロジェクトにイメージを配置する場所はどこですか?
- 8. Railsアプリケーションでグローバルに利用できるようにカスタムクラスを配置する場所はどこですか?
- 9. サービスレイヤプロジェクトにIOC(ninject)コードを配置する場所はどこですか?
- 10. 大域定数を.NETライブラリに配置する場所はどこですか?
- 11. log4j.jarをjavaディレクトリに配置する正しい場所はどこですか?
- 12. AWS VPCにWebアプリケーションサーバーを配置する場所はどこですか?
- 13. バージョン情報をwsdlに配置する場所はどこですか?
- 14. React/Reduxにスクリプトを配置する場所はどこですか?
- 15. ConcreteCommandをjavaパッケージ階層に配置する場所はどこですか?
- 16. Obj-cにカテゴリを配置する場所はどこですか?
- 17. robots.txtファイルをjettyサーバーに配置する場所はどこですか?
- 18. Symfonyプラグインにベースアクションクラスを配置する場所はどこですか?
- 19. MVCビューにC#ベースのコードを配置する場所はどこですか?
- 20. ASP.NET MVC:共有ビューにデータを配置する場所はどこですか?
- 21. Laravel 5にカスタムフォントを配置する場所はどこですか?
- 22. レールアプリケーション内にソケットを配置する場所はどこですか?
- 23. イベントハンドラをWindowsサービスに配置する場所はどこですか?
- 24. AppEngineアプリケーションにキャッシュを呼び出すロジックを配置する最適な場所はどこですか?
- 25. ループの内部でcompletionHandlerを配置する場所はどこですか?
- 26. マスターページのコードをMVCアプリケーションに配置する場所は?
- 27. アプリケーションにグローバルなエンティティを配置する場所は?
- 28. PHPの例外:動的データを配置する場所はどこですか?
- 29. AngularJS - サードパーティプラグインのデフォルトを配置する場所はどこですか?
- 30. ここでthis.setStateを配置する場所は?
_Appファイルファイルが機能しなければなら? – erotavlas
@erotavlas javascriptでは、関数はファーストクラスのオブジェクトであり、次のコード_Appは関数でなければなりません。この回答があなたを助けてくれることを願っています。より多くの情報が必要な場合はお知らせください。 – GibboK