28 votes

Contrôleur dans Backbone JS

Je suis nouveau sur Backbone JS. J'ai parcouru la documentation. Ma question est de savoir où le concept de contrôleur entre en scène? (ie) Qu'est-ce qu'un contrôleur dans le backbone JS?

J'ai entendu dire que le routeur est le contrôleur. Si oui, pourquoi est-il considéré comme un contrôleur? et nous pouvons également développer des applications de base simples sans le routeur? Dans ce cas, quel sera le contrôleur?

33voto

badawym Points 781

Pour éclaircir les choses un peu ici. Un Routeur n'est pas un Contrôleur, C'est une façon de définir un client du côté de la carte de l'itinéraire (similaire à Rails de routes.rb). Cela permet de routage côté client pages à certaines actions/gestionnaires. Et c'est différent d'un contrôleur du travail, qui est de fournir un peu de l'orchestration entre les Modèles et les Vues. Et effectivement, il existe plus d'une façon de faire cela à l'aide de la colonne vertébrale. Citant épine Dorsale de la documentation:

Les références entre les Modèles et les Vues peuvent être traitées de plusieurs façons. Certains les gens aiment avoir directement les pointeurs, où les points de vue correspondent à 1:1 avec de l' les modèles (model.vue et d'affichage.modèle). D'autres préfèrent avoir intermédiaires "contrôleur" des objets qui orchestrent la création et l'organisation de vues en une hiérarchie. D'autres encore préfèrent le evented approche, et toujours le feu des événements au lieu d'appeler des méthodes directement. L'ensemble de ces les styles de travail bien.

Cela apporte trois approches différentes pour accomplir cette tâche. La première est assez simple qui est d'avoir le modèle de l'objet inclus en tant que bien à la vue.

La seconde propose d'inclure un troisième élément qui remplit ce rôle, de l'orchestration. Je crois que cela peut être utile en assez grand et plus complexe. Pour cela, je vous encourage à regarder Chaplin, un exemple de l'architecture de l'application à l'aide de Backbone.js. Les gars ont fait un excellent travail en séparant les choses et a également introduit le concept d'un Contrôleur dans l'architecture.

La dernière approche suggère d'utiliser les événements pour marquer pour les actions et de médiateur pour gérer ces actions. Pour cela, je vous encourage à regarder dans le médiateur et Publier/Souscrire JavaScript modèles.

8voto

Radek Points 1908

6voto

Tom Tu Points 6766

C'est plus de la même façon par exemple iOS Cocoa Touch-cadre de travaux, vous ne devriez pas penser comme un backend MVC, épine dorsale de l'équipe, même ne mentionne jamais MVC sur leur site web pour éviter la confusion, les gens ont souvent en provenance de backend de la Cva. La Vue de la colonne vertébrale est ce qu'on appelle dans iOS, un ViewController/AppController et habituellement, votre principale AppController seront un point de Vue qui définit les grandes wrapper pour votre application qui, habituellement, vous pouvez aussi les utiliser en tant que global pub/sous-système et le contrôleur pour votre application principale logiques.

Le routeur est exactement ce que ça dit - il convertit les routes en un ensemble de paramètres et les transmet à l'application de contrôleur de trouver quoi faire avec eux, ce qui sous-vue de charge etc. (ou, si la demande est moins sophistiqué, il peut charger/modifier le point de vue directement à partir de niveau du routeur) - Il utilisé pour être appelé contrôleur, mais il a été renommé à l' (0.5, je crois?) pour éclaircir cette confusion.

Au moins c'est notre approche - si vous avez coché plusieurs tutoriels dans la nature, vous avez probablement constaté que quand il s'agit de la Dorsale il y a autant d'approches que de nombreux développeurs y sont. Et c'est ce qui est beau sur la Dorsale! :)

2voto

Sander Points 7078

Habituellement, je fais mes propres contrôleurs, et de laisser le routeur le faire (la capture des routes, et pointant vers une action de contrôleur). Ces contrôleurs sont faites maison, juste des objets javascript avec les méthodes d'eux. Ils prennent la demande à partir du routeur, la collecte de données (collections, modèles...) et de prendre les afficher, de les combiner entre eux et transmettre les données dans la vue.

à partir de là, c'est l'épine dorsale de nouveau.

cependant je suis récemment arcoss une 3ème partie dorsale plugin appelé backboneMVC. Lire de la documentation, mais n'ont pas encore l'essayer moi-même.

Il vise à prendre le contrôle de votre routeur et de faire des itinéraires en fonction de vos contrôleurs et actions définies avec elle.

Jetez un oeil à la bibliothèque toutefois, je ne promets rien parce que je n'ai pas encore de construire quelque chose avec moi-même.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X