2016-10-18 2 views
0

ich habe folgendes Szenario:requirejs definieren Module nicht wie erwartet funktioniert

ich habe einen globalen Namensraum Fort genannt, die einige gemeinsame Funktionen, die ich brauche, und es sieht wie folgt aus:

fort.js

define("fort", ["fortHistory"], function (FortHistory) { 

    function Fort(){} 
    Fort.prototype.history = FortHistory; 

    return Fort; 
}); 

fortHistory ist ein kleines Modul i wie so definiert erstellt:

fortHistory.js

"use strict"; 
define("fortHistory", function() { 

function FortHistory() { 

} 
FortHistory.prototype.doSomething = function(){...} 
return FortHistory; 
}); 

ich tun dies dann in meinem config.js

require.config({ 
    enforceDefine: true, 
    paths: { 
     'fort': 'develop/js/fort', 
     'fortHistory' : 'develop/js/webapp/fortHistory' 
}, 
    shim: { 
     fort:{ 
      exports: 'fort' 
     } 
    } 
}); 
define(function() {}); 

schließlich in main.js ich habe:

define('fort', [], function(fort){ 
    window.fort = fort; 
}); 

die Hoffnung war, dass ich dann einen Anruf machen könnte wie:

Stattdessen Fort ist undefined, also nehme ich an, ich habe falsch interpretiert, wie requires funktioniert

+0

Es gibt mehrere Fehler hier: Sie definieren das Modul namens fort in main.js neu und Sie haben keinen Einstiegspunkt. Versuche es zu verlangen ('fort', ...) anstatt –

+0

zu definieren, wie du sagtest, da waren ein paar Fehler herumliegen, die sortiert wurden, danke für die Köpfe hoch – user1383163

Antwort

1

Sie haben es genannt history, nicht fortHistory:

Fort.prototype.history = FortHistory; 

Probieren Sie es über fort.history.doSomething(); aufrufen.

Verwandte Themen