2016-10-16 8 views
0

現在、私はに従っています。私がKoに直接参照するとき:Typescript。 KnockoutJs。 Uncaught ReferenceError:requireが定義されていません

/// <reference path="./node_modules/@types/knockout/index.d.ts" /> 

エラーはありません。しかし、ときrefrenceは次のように追加されます。

import * as ko from "knockout"; 

エラーがスローされます。

Uncaught ReferenceError: require is not defined

活字デモstatesこと:

RequireJsを定義するための正しい方法は何ですか

We’ll need to grab Knockout itself, as well as something called RequireJS.

?なぜ "インポート"の場合にrequirejsを使用する必要がありますか?

RequireJs homepageからpackage.json

"dependencies": { 
    "jquery": "3.1.1", 
    "@types/jquery": "2.0.33", 
    "knockout": "3.4.0", 
    "@types/knockout": "1.1.5" 
    } 

答えて

2

。 RequireJSはJavaScriptファイルとモジュールローダーです。

スクリプトタグからRequireJsを参照することができます。

<script src="scripts/require.js" type="text/javascript"></script> 

を定義し、requireJs設定を定義します。

require.config({ 
    baseUrl: 'app', 
    paths: { 
     text: "../scripts/text" //Path to text.js, you will use this to load html that will be used in your ko components, 
     widgets: "widgets", 
     app: "." 
    } 
}); 

次に、このようにコンポーネントを登録できます。

ko.components.register(name, { 
    viewModel: { require: path }, 
    template: { require: 'text!'+ path +'.html' } 
}); 

Why it is required to use requirejs for "import" case?

非同期あなたのKOのコンポーネントをロードするために、あなたはRequireJsのようなモジュールローダを必要としています。このdocumentationを参照してください。

+0

requirejsのチュートリアル: https://github.com/volojs/create-template:JSを必要とするため https://www.youtube.com/watch?v=eRqsZqLyYaU フォルダ構造 – Spirit

関連する問題