2015-07-01 13 views
21

Vorrei implementare un backend DOM non HTML diverso per Knockout JS, probabilmente all'interno di un tipo di ambiente non browser (probabilmente Node.js). In particolare, esiste un vecchio, semplice, statico framework UI che mi piacerebbe racchiudere con un DOM e quindi utilizzare con Knockout. Capisco che Knockout stesso sia almeno in grado di operare all'interno di Node.js senza un ambiente browser (vedi here per esempio), ma mi chiedo cosa devo implementare per creare un DOM completamente diverso.Knockout JS con backend DOM alternativo

  • È qualcosa in cui posso ignorare alcune classi di manipolazione DOM con le mie implementazioni?
  • Esiste qualche nozione di un'interfaccia DOM?
  • O probabilmente avrò bisogno di fare qualcosa da zero con un ko.applyBindings alternativo, ecc.?

Sto solo cercando di capire se sono per lo più pazzo o completamente pazzo per quanto riguarda lo scopo del lavoro.

+0

Non so davvero knockoutjs ma il problema con i framework basati su dom è che scrivono html (come testo) in .innerHTML, il browser lo analizza per loro e recupera il DOM. nel back-end che hanno bisogno di molte cose extra. – YOU

+0

Sembra che ci siano i sorgenti utils.dom * (ad esempio utils.domManipulation's setHtml) ma sto cercando di capire tutti i punti in cui il DOM raggiunge le sue antenne ... –

+0

Vedo che questo è stato downvoted - qualcuno può spiegare perché ? –

risposta

1

Penso che si potrebbe fare questo attraverso la creazione di elementi personalizzati (http://knockoutjs.com/documentation/component-custom-elements.html) con attacchi personalizzati (http://knockoutjs.com/documentation/custom-bindings-for-virtual-elements.html) ed estendendo la sintassi di rilegatura (http://knockoutjs.com/documentation/binding-preprocessing.html)

Si sarebbe probabilmente quindi necessario creare un elemento cliente, vincolante e la sintassi per ogni elemento all'interno dell'interfaccia utente, suggerirei di creare un file json con informazioni sugli elementi e consentire la creazione di elementi personalizzati utilizzando json, con il collegamento json a un widget contenente la logica per ciascun elemento.

+0

Penso che questo potrebbe essere un approccio interessante per estendere il DOM nel modo in cui mi piacerebbe; tuttavia, non penso che risolverà KO trovando la "radice" del DOM - sembra che ci siano cose del tipo "documento. ???" incorporato. Qualche altra idea su questo? –

0

Penso che jsdom sia il miglior punto di partenza.

Problemi correlati