2016-07-11 10 views
0

Ich habe eine Home.lsml Datei mit mehreren Registerkarten. Um zwischen den Registerkarten zu wechseln, habe ich, anstatt mich auf das Aufklappmenü von Lightswitch zu verlassen, ein festes Menü (JQuery-Symbolleiste) oben auf der Seite hinzugefügt, das default.htm verwendet. Mit dieser Symbolleiste kann ich erfolgreich zwischen den Registerkarten navigieren, die sich in Home.lsml befinden.Aufruf home.lsml Registerkarten programmatisch

Mein proplem ist, wenn ich auf der Ansicht/Browse bin im Zusammenhang .lsml Dateien, würde ich nicht offensichtlich sein, nicht den Halt auf home.lsml mit so offensichtlich nicht in der Lage die anderen Registerkarten zuzugreifen, die in der Datei home.lsml gewohnt sind. In einer solchen Situation eine Warnung, wie ich bin immer

0x80004005 - JavaScript runtime error: Could not find a tab with the name 'MainTab2' on screen 'BrowseTab1'.

Kurz, Wie öffne ich die Registerkarte, die nicht in der aktuellen DOM ist.

Ich verwende Visual Studio 2015 Community Edition.

Antwort

1

Erweiterung auf my earlier example sollten Sie in der Lage sein, die folgende Art von Ansatz zu verwenden:

$("#tabOne").bind("click", function() { 
    msls.application.navigateHome().then(function() { 
     var screen = new msls.Screen(); 
     screen.showTab("TabOne"); 
    }); 
}); 

Wenn der Symbolleiste auf die Schaltfläche geklickt wird, ist dieser Ansatz auf dem Startbildschirm des HTML-Client navigiert durch die Light navigateHome Methode.

Alternativ kann, wenn das Zielbild nicht als Startbildschirm bezeichnet wird, können Sie die showScreen Methode verwenden und den Namen des Zielbildschirm wie folgt angeben:

$("#tabOne").bind("click", function() { 
    msls.application.showScreen("Home").then(function() { 
     var screen = new msls.Screen(); 
     screen.showTab("TabOne"); 
    }); 
}); 

Beide Methoden (navigateHome und showScreen) Geben Sie eine WinJS.Promise zurück, die abgeschlossen wird, wenn der Vorgang zum Navigieren zum Zielbildschirm abgeschlossen ist, sodass die showTab-Methode ausgeführt werden kann, sobald der Bildschirm verfügbar ist.

Wenn Sie beim Lesen über Versprechungen mehr interessiert sind (im Rahmen des Light HTML-Client) die folgenden SO Post einige nützliche Details und Links enthält:

Lightswitch html how to know when async iteration is done

+0

Du bist der Meister, Dank Tonne. Sicher, ich werde auf jeden Fall durch die URL gehen, die Sie zur Verfügung gestellt haben, um mehr über Promises zu erfahren. – Lucky

+0

Ich bin froh, dass es geholfen hat und ich bin mir sicher, dass Sie die Links nützlich finden werden. –

+0

Ja. Sie sind sehr nützlich. Tatsächlich habe ich die Antworten für einige meiner Fragen bekommen. Danke noch einmal. – Lucky

Verwandte Themen