2016-10-16 6 views
0

Zurzeit folge ich official ts-ko demo. Wenn ich einen direkten Verweis auf Ko gebe:Typoskript. KnockoutJs. Uncaught ReferenceError: require ist nicht definiert

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

Es gibt keine Fehler. Aber wenn ein refrence in folgenden Weise hinzugefügt:

import * as ko from "knockout"; 

ein Fehler ausgelöst:

Uncaught ReferenceError: require is not defined

Typoskript Demo states, dass:

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

Was ist der richtige Weg RequireJs zu definieren ? Warum ist es erforderlich, requirjs für den Fall "Import" zu verwenden?

package.json

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

Antwort

2

Von RequireJs homepage. RequireJS ist ein JavaScript-Datei- und Modullader.

What is the right way to define RequireJs?

Sie können Ihre RequireJs einfach über ein Skript-Tag referenzieren.

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

und definieren Sie Ihre requirJs-Konfiguration.

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: "." 
    } 
}); 

Dann können Sie Ihre Komponente genau wie diese registrieren.

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

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

Um asynchron Ihre ko-Komponenten zu laden, benötigen Sie einen Modul-Lader wie RequireJs. Siehe documentation.

+0

Tutorial auf requirejs: https://www.youtube.com/watch?v=eRqsZqLyYaU Ordnerstruktur für erfordern js: https://github.com/volojs/create-template – Spirit

Verwandte Themen