私はMS CRM内からRequireJsを使用して起動しようとしてると活字体でモジュール/クラスを使用しますが、私は私の現在の活字体ファイルとJSを必要とする使い方に混乱しているようにする方法。Requirejs
// File Path .\_Abc\scripts\CommonLib.ts
module ABC_Corp {
export class CommonLib {
...
}
}
// File Path .\_Abc\scripts\RestLib.ts
module ABC_Corp {
export class RestLib {
...
}
}
// File Path .\_Abc\scripts\RoleLib.ts
module ABC_Corp {
export class RoleLib {
...
}
}
:
// File Path .\_Contoso\scripts\Contact.ts
module Contoso {
export class Contact {
private static instance = new Contact();
//#region Form Properties
static fields = { }
//#endregion Form Properties
//#region onLoad/onSave
static onLoad(): void {
Contact.instance.onLoad();
}
private onLoad =(): void => { ...}
static onSave(): void { Contact.instance.onSave(); }
private onSave =(): void => { ... }
//#endregion onLoad/onSave
}
}
各ファイルに1つ以上の共通のファイル/クラスの依存関係が含まれる場合があります。
は現在、CRM内の各フォームには、それは次のようになります自分の活字体ファイルは、だましたこれらのファイルは、現在すべてVS Webサイトプロジェクトに存在します。 tsファイルを保存するたびにJSを生成し、それらのファイルをCRMにデプロイします。
ここで、RequireJSと入力します。 CRMファイルの実行に必要なサポートされている唯一のフックは、OnLoadとonSaveイベントであるため、CRM OnLoad関数呼び出しから必要な設定を読み込むContoso.Requireファイルを作成してから、適切な関数フォームスクリプトのonLoadメソッド。これは、メインフォームJSをロードしてonLoad関数を呼び出すためにすべて動作しています。私の問題は、各ファイルに必要なファイルを定義するのではなく、CRM OnLoadイベントで必要なJSファイルを定義する必要があることです。どのように各クラス/ファイルに必要なファイルを定義するのですか?
私は質問の本当にわからないんだけどうまくいけば、それはいくつかの前後で明らかになりました。 require.jsを使用する予定のどこにいても、明示的にrequire.jsを含める必要があります。したがって、CRMフォームの場合は、require.jsおよびcontact.jsへの参照を追加する必要があります。 contact.jsのコーディングでは '/// <参照パス=" require.d.ts "/>'を(正確なパスで)追加してから、OnLoad関数で 'import somemodule = require( './ somemodule私はあなたの質問から何かが欠けていると思っていますが、うまくいけば、前後にいくらか明確になります。 – Nicknow