Comment puis-je créer des multi-applications de page avec Meteor?
Je suis nouveau sur le Javascript et juste commencé à bidouiller avec le Météore de la curiosité. Vraiment ce qui me surprend, c'est qu'il semble que tout le contenu HTML obtient combinés en une seule page.
Je soupçonne qu'il ya un moyen d'introduire de la gestion des Url diriger vers des pages spéciales. Il semble que la "todo" exemple est capable de le faire via une sorte de Router
classe. C'est que le "canonique" mode de gestion des URL?
En supposant que je peux gérer les Url, comment aurais-je de la structure de mon code HTML permettant d'afficher des pages distinctes? Dans mon cas, ils peuvent avoir chacun complètement différents ensembles de données, donc pas de code HTML doit être partagée par tous.
- Vous devriez jeter un oeil à ceci: stackoverflow.com/questions/11461097/... stackoverflow.com/questions/11501312/default-error-page/...
- Hmm, ces pages expliquent comment utiliser
Backbone.Router
. Il semble que le code HTML est structuré par emballage contenu dans{{#if route}}
directives, mais qui semble un peu ... bizarre ... pour moi. - POUR l'ENSEMBLE de l'AFFICHAGE de CETTE QUESTION: La solution actuelle est d'utiliser
Iron-Router
.
Vous devez vous connecter pour publier un commentaire.
Jon Or de réponse utilisé pour être correct, mais comme de Meteor 0.5.4:
Ainsi, l'actuel "canonique" façon de le faire est probablement d'utiliser IronRouter.
Autant que je sache, il n'existe pas actuellement de la boîte de façon à ce faire.
Ce que je suggère de faire, est d'utiliser Backbone.js smart package.
Backbone.js vient avec le push-etat du Routeur, et si le navigateur de l'utilisateur ne supporte pas qu'il se replie sur de hachage url.
Dans votre application de météore répertoire de ce type
meteor add backbone
.Puis, quelque part dans votre code côté client créer un Backbone.js Routeur comme suit:
Puis, quelque part dans votre Guidon modèle, vous pouvez créer un helper qui va effectuer le rendu d'une page en fonction de la valeur définie dans la Session "currentPage".
Vous pouvez trouver plus d'informations sur backbone.js routeur ici: http://backbonejs.org/#Router
Également des informations pertinentes sur la façon de créer un Guidon helper dans Metoer ici: http://docs.meteor.com/#templates
Espère que cette aide.
meteor add backbone
? En dehors de cela, je vais probablement prendre un coup d'oeil autour de la façon d'organiser mon code HTML avec des charges de si les directives ...meteor add backbone
. Merci!!!!Meteor-Routeur fait vraiment facilement. Je l'ai utilisé dans certaines applications j'ai été la construction avec le Télescope comme une bonne référence. Jetez un oeil au Télescope router.js
À l'utiliser...
mrt add router
Dans client/router.js:
Dans votre modèle...
Error: ENOENT, no such file or directory 'C:\Program Files (x86)\Meteor\packages\page-js\page-js\index.js'
. Où s'est-il passé?npm install page
n'est pas assez. J'ai cloné le repogit clone git://github.com/visionmedia/page.js.git
et copié dans le.\Meteor\packages\page-js\page-js
J'ai trouvé le même problème. Lorsque le code est plus grand, il est difficile d'avoir un code propre.
Voici ma solution à ce problème:
J'ai séparé les différentes pages html comme je le ferais avec un autre framework web. Il y a un
index.html
où je stocke la racine de la page html. Et puis, pour chaque grande partie fonctionnelle-je créer un autre modèle et de le placer dans un autre html. Meteor fusionne ensuite. Enfin, j'ai créer une variable de session appeléoperation
où j'définir ce que pour montrer à chaque fois.Voici un exemple simple
index.html
puis dans splash.html
puis dans user.html
et ainsi de suite ...
Dans le code javascript puis-je vérifier lors de l'impression de chaque modèle à l'aide de la variable de Session, comme ceci:
Enfin l'épine Dorsale Routeur gère cette variable de Session
J'espère que ce modèle est utile pour les autres développeurs Meteor.
C'est mon hacky solution de routage :
https://gist.github.com/3221138
Viens de mettre le nom de la page que le nom du modèle de fr accédez à /{nom}
angularjs
peut maintenant être utilisé pour ça, non?