2 Stimmen

Implementierung von SproutCore-ähnlichen Bindungen in einer JavaScript-Webanwendung

Ich habe die SproutCore-Anleitung und eine Vorstellung davon haben, was der Rahmen zu bieten hat. Es scheint erstaunlich zu sein, obwohl ich nicht sicher bin, was ich von einem Framework halte, das HTML und CSS hinter den Kulissen generiert. Das, was ich an SproutCore am ansprechendsten finde, sind seine Bindungen - die Verringerung der Menge an Glue-Code, die erforderlich ist, um alles synchron zu halten, kann nur eine gute Sache sein.

Ich bin daran interessiert, zu erfahren, wie die Bindungen von SproutCore implementiert sind. Ich würde gerne in der Lage sein, die Vorteile von Bindungen zu nutzen, ohne unbedingt ein Framework wie SproutCore zu verwenden.

Wie würde man vorgehen, um den JavaScript-Code zu schreiben, der notwendig ist, um Daten und ihre Darstellungen zu verbinden, damit die Ansichten Änderungen an den Daten sofort und ohne Glue-Code widerspiegeln?

6voto

bruz Punkte 433

Bei SproutCore werden die 'get'- und 'set'-Methoden verwendet, die von der SC.Observable Mixin ermöglicht die Beobachtung von Schlüsselwerten. Wenn Sie eine Bindung erstellen, wird im Grunde ein Beobachter eingerichtet, der ausgelöst wird, wenn die "set"-Methode für den beobachteten Wert aufgerufen wird, und der dann die Änderung weitergibt. Wenn eine Bindung an eine Ansicht auf Ihrer Seite gebunden ist, ruft die Bindung den erforderlichen Ansichtscode auf, um die Änderungen am DOM vorzunehmen. Sie können einen Blick in die API-Dokumente und den Quellcode für SC.Observable y SC.Bindung drüben bei http://docs.sproutcore.com .

Da SproutCore in mehrere "Frameworks" unterteilt ist, könnten Sie einfach das Framework nehmen, in dem dieses Kernmaterial lebt, genannt "Runtime", und es in Ihrem Projekt ohne all die Datenspeicher- und Ansichtsschichten verwenden, die Sie nicht wollen. Sie könnten auch versuchen, diese Funktionalität selbst zu reproduzieren, aber ich frage mich, ob Sie am Ende viel von dem, was sie geschaffen haben, reproduzieren müssen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X