Ich habe ein JavaScript-Objekt auf diese Weise hergestellt:Javascript abonnieren Funktion nach Instanciation Rückruf
function App(callback){
// Call some "long running functions meant for initialization
callback(this);
}
In meinem Haupt-Template-Seite (_Layout.cshtml auf ASP MVC) Ich instanziieren es wie folgt aus:
_Layout.cshtml
var oApp = new App(function(initializedApp){
// Instanciate here other Javascript components that depend on
// App initialization
var oComponent1 = new Component1(initializedApp);
});
Dies funktioniert gut! Component1 wird initialisiert, nachdem die App die Initialisierung abgeschlossen hat und alles in Ordnung ist.
Problem steigt in Page1.cshtml (das innerhalb _Layout.cshtml gerendert wird und Zugriff auf oApp hat). Page1 muss auch seine eigene Komponente initialisieren, die App vollständig initialisiert werden muss.
Page1.cshtml
// How do I "subscribe to the App callback function so that Compnent2, s
// specific to the Page1.cstml, is initialized afetr App has finished
// its initialization ???
var oComponent2 = new Compnent2(oApp);
oApp.callback(); // ???
oApp(function(initializedApp){ // code here... }); //???
Dank
Lorenzo
Wie dies verhindert Component2 (. ..) initialisiert werden, nachdem App seinen Initialisierungsprozess abgeschlossen hat? –
Sie können die Erstellung von "oComponent2" in den von Ihnen registrierten Rückruf verschieben: 'var oComponent2; oApp.addCallbacks (Funktion (oApp)) {oComponent2 = new Compnent2 (oApp);}); ' –
Danke James, ich werde es versuchen. Bisher habe ich eine andere Problemumgehung verwendet, aber ich probiere deinen Code trotzdem aus. –