マイクロソフトでは、記事「Building Single Page Applications on ASP.NET Core with JavaScriptServices」に記載されているように、ASP.NET CoreでAngular(AngularJSではなく)を開発するための素晴らしいテンプレートを提供しています。ASP.NETコア角テンプレート:app.module.clientとapp.module.server
非常に単純ですが、テンプレートの一部があります。ただ単にapp.module.ts
というファイルではなく、app.module.client.ts
とapp.module.server.ts
の両方があります。
私は、ウェブ上でこれを説明する何かを見つけることができませんでした。誰もが、なぜアプリケーションモジュールのためのこれらの2つの別々のファイルがあるか、彼らの特定の用途は何か、どのようにそれらを使用するか、何か考えている?
それがすべてで助けている場合、ここでの完全なテンプレートは次のようになります。私はClientApp/app/models
とClientApp/app/services
は、私は自分の目的のために追加した2つのフォルダであることに注意すべきである
。それらはテンプレートの一部ではありません。また、app.module.shared.ts
は実際には非常に単純なもので、コードを2回書く必要がないので、心配しないでください。ここで
は、2つのファイルがどのように見えるかです:、
ああ、大丈夫です。使い方はどうですか?たとえば、コンポーネントを宣言すると、それはクライアント、サーバー、または共有に移動する必要がありますか?プロバイダーはどうですか?輸入品ですか?すべてのものを共有することが大切なのでしょうか?あるファイルに特定のものを入れて、他のファイルには何かを入れるべきなのでしょうか? – NetherGranite
コンポーネントで使用されるサービスへの参照を追加しようとすると、そのような参照をapp.module.serverとapp.module.clientの両方のプロバイダに追加する必要があることがわかりました。私はhttps://channel9.msdn.com/Events/Visual-Studio/Visual-Studio-2017-Launch/WEB-103(下の私のコメントを参照)に従おうとしていて、サンプルサービスへの参照を上記のファイル。 – danfer
私がやったのは、app.module.shared.tsにサービスのインポートを設定し、それらを共有のプロバイダに追加することです。app.module.serverとapp.module.clientで、sharedConfig.providersへの参照を追加するだけです。サーバーとクライアントの各ファイルの@NgModuleの「providers」セクションにあります。この方法では、新しいサービスを追加する必要がある場合は、各ファイルで行う必要はありません。共有するだけです。 2つの異なるサービスでテストされ、うまくいった – danfer