Hallo, ich arbeite an einer .Net
Anwendung mit einer einzigen Seite Knockoutjs, Sammy.js und Rest Web API. Ich bin etwas neu in diesen Bibliotheken und ich habe ein paar Kern-Design-Probleme kennengelernt und ich hoffe, einige Einblicke zu gewinnen.Knockoutjs Single Page Anwendungsbindungen
Das Hauptproblem, das ich habe, ist Knockouts ko.applybinding gezielt auf bestimmte Elemente.
this.get("#/Classroom", function(context) {
dataPack.build(PageLoc, context)
appPres.reload();
ko.applyBindings(new classroomVmCore.View(), document.getElementById('view-Classroom'));
});
Da dies eine einzelne Seite Anwendung ist, muss ich meine Ansichten dynamisch anhängen. Das dataPack.build
ist, was meine Ansicht ergreift und an den Kontext der einzelnen Seite bindet. Diese Funktionalität funktioniert wie erwartet, aber wenn es um ko.applyBindings
kommt finde ich die folgenden Probleme auftreten ..
Jede Aktualisierung der Seite verliert meiner Meinung nach Modell und wenn die
sammy.js
Hash fehlt nicht getroffen wird, die Daten. Dieses Problem tritt hauptsächlich bei allen freigegebenen Inhalten auf (z. B. Navigationselemente, Layoutelemente usw.). Da diese Daten über ein eigenes Anzeigemodell verfügen, wenn ich erneut auf den Hash-Wert#/Classroom
klicke, gehen diese freigegebenen Modelle verloren.Ist das eine weitere Option neben der Verwendung der Konstruktorfunktion für mein Ansichtsmodell? Das auf eine Variable zu setzen und dann zu versuchen, diese Variable anzupassen oder hinzuzufügen, scheint mein Modell nicht anzupassen.
suche ich im Wesentlichen für eine Art und Weise meines Modell jederzeit zu aktualisieren/zu aktualisieren, damit ich frisch eine Seite behandeln.
Hat jemand diese Bibliotheken für einen SPA in diesen Fragen verwendet? Wie hast du deine Ansichten und Bindungen strukturiert?
Jede Hilfe oder Ideen werden sehr geschätzt.
Großer Dank für Ihre Eingabe gibt das mir eine bessere Vorstellung davon, wie diese mit sammy.js zu integrieren. Eine letzte Frage: Haben Sie eine Engine verwendet, um Ihre Vorlagen für eine externe Quelle zu erhalten? –
@BrandonCemprola Nein, unsere Vorlagen sind einfach und in die Seite geladen, unsere Vorlagen müssen nicht dynamisch sein. –