7
votes

Comment séparer le code de la vue / logique JavaScript

Je reçois des objets JSON à partir d'un site Web avec mise à jour / Créer / Supprimer des indicateurs. Sur la base de ces informations, je mettez à jour, créez ou supprimez des éléments HTML et des rappels BIND. Cela peut affecter plusieurs éléments HTML.

Mon approche actuelle consistait à tout mettre en objets spécifiques qui gèrent la génération HTML via JQuery E.g.: P>

$.("<table>").addChild($("<tr>")).addClass('test')


3 commentaires

Avez-vous essayé de créer des événements personnalisés?


Jamais entendu parler d'eux, Ive vient de regarder les yeux et je ne pense pas que cela aiderait à séparer le code de vue / logique. Si vous avez une idée sur la façon de les utiliser, veuillez expliquer :)


Duplicaté possible: Stackoverflow.com/Questtions/7495680/...


5 Réponses :


0
votes

Pour rendant HTML Vous pouvez utiliser Handlerbars.js Il est très mature et avoir beaucoup de documentation

Pour la liaison des événements Je vous recommande d'utiliser jQuery Délégate sur l'objet parent qui n'a pas eu Supprimé avec la mise à jour de l'AJAX. De cette façon, vous devez seulement réaffecter des événements sur chaque demande


0 commentaires

4
votes

Recherchez le cadre MVVM. C'est exactement ce dont vous avez besoin car votre JavaScript devient de plus en plus complexe. Il sépare vos besoins en matière de préoccupation entre votre code de présentation (HTML) et votre logique de présentation (JavasRIPT)

knockout.js est Une très bonne bibliothèque pour vous aider à démarrer, je recommande de traverser les tutoriels pour vous aider à démarrer dessus. P>

Exemple rapide: P>

helloworld.html strong>

var ViewModel = {
   helloWorldVariable: ko.observable('test'),
   helloWorld: function() {
       this.helloWorldVariable('clicked!');
   }
}

// Bind viewmodel


0 commentaires

0
votes

Dans votre cas, je peux vous recommander de consulter knockoutjs , angularjs ou backbone.js . < / p>


1 commentaires

Merci, j'ai pris un oeil sur Knockoutjs et Angularjs et je comprends la façon dont Angularjs fait mieux les choses.



0
votes

Vérifiez backbone.js . C'est un MVC-ISH très populaire et flexible mis en place pour les applications de navigateur JS. Le code est hébergé sur Github .


0 commentaires

0
votes

Knockout JS pourrait valoir un look, il sépare le modèle de données du modèle de vue et prend soin des dépendances entre eux.


0 commentaires