7
define(["require", "exports", "js/models/home","templates/home/home.html"
], function(require, exports, __model__, __homeView__) {

    var model = __model__;
    var homeView=__homeView__;


}

.tsこのようなファイルを生成するファイルを書きたいと思いjsます。

--moduleamdをコンパイルすることで、モデルをインポートしjquery、、、backboneJsまたはその他のjsファイルを参照することもできます。しかし、どうすればexternerhtmlファイルをインポートできますrequireJsか?

4

3 に答える 3

9

少し前に、require.js と Typescript に関するブログをまとめました。
http://blorkfish.wordpress.com/2012/10/23/typescript-organizing-your-code-with-amd-modules-and-require-js/
テキスト ファイルをインポートするには、テキストを参照する必要があります。 js を作成し、以下のように text!<...your text file> 構文を使用します。require.config を使用すると、require の使用がさらに簡素化されます。

require.config({
    baseUrl: '../',
    paths: {
        views: 'app/views',
        'text': 'lib/text',
    }
});

require([
    'text!views/MTodoCollectionView.html'],
    (MTodoCollectionViewSnippet) => {
        // 
    });
于 2012-11-05T14:31:54.657 に答える
2

typescriptモジュールとしてrequirejsテキストプラグインを使用してテキストテンプレートをロードするための非常にきちんとしたシンプルなソリューションを見つけました:

blorkfish のように require.js を構成したと仮定すると、次のように提案されます。

require.config({
  baseUrl: '../',
  paths: {
      views: 'app/views',
      'text': 'lib/text',
  }
});

次のようにして、typescript 内からテキストを直接読み込むことができます。

declare module "text!views/myview.html" {} 
import view = module("text!views/myview.html");

export class MyViewCtrl { //or whatever thingy you want impl in your typescript module
...
checkoutThisTemplate() {
    console.log(view); //will print the template as text to console
}
...

生成された JS は、次のようになります。

define(["require", "exports", "text!views/myview.html"],       
    function(require, exports, , __view__) {
        var view = __view__;
....
于 2013-03-14T23:38:39.827 に答える
1

TypeScript コンパイラはまだこれをサポートしていないと思いますが、間違っている場合は修正していただければ幸いです。Codeplex でこの機能に関するディスカッションを開始できます。

関数を宣言する限り、TypeScript ファイルでこれを正確に手動で設定できますdefine

declare function define(...params: any[]): void;

define(["require", "exports", "js/models/home","templates/home/home.html"
], function (require, exports, __model__, __homeView__) {

    var model = __model__;
    var homeView = __homeView__;
});

現在のようにコールバック内で型チェックが必要な場合は、少しファンキーになる必要がありmodelhomeViewtype になりanyます。具体的な例があれば、これについて何かを作成しようとすることができますが、モジュールの宣言を追加する必要があると思われます (これは、TypeScript コンパイラに対してフラグを使用して自動生成できます)。

于 2012-11-05T14:31:53.690 に答える