104 votes

Comment l’architecte une demande de Ember.js

Il a été difficile de suivre l'évolution de la Ember JS comme sa approché (et atteint!) la version 1.0.0. La documentation et les tutoriels sont venus et repartis, conduisant à beaucoup de confusion sur les meilleures pratiques et l'intention des développeurs à l'origine.

Ma question est exactement cela: Quelles sont les meilleures pratiques pour Ember JS? Existe-il une mise à jour des tutoriels ou de travail des échantillons montrant comment Ember JS est destiné à être utilisé? Les exemples de Code serait génial!

Merci à tous, en particulier les Ember JS devs!

110voto

Mike Grassotti Points 15937

Mike Grassotti Minimum Viable Ember.js Guide de Démarrage rapide

Ce guide de démarrage rapide devrait vous obtenir à partir de zéro à un peu-plus-que-zéro dans un couple de minutes. Quand cela est fait, vous devriez vous sentir assez confiants que ember.js en fait, il fonctionne, et j'espère être assez intéressé à en savoir plus.

AVERTISSEMENT: Ne pas juste essayer ce guide alors pensez de braise-suce cause", je pourrais écrire que guide de démarrage rapide-guide mieux en jQuery ou Fortran" ou quoi que ce soit. Je n'essaie pas de vous vendre sur la braise ou quoi que ce soit, ce guide est un peu plus qu'un bonjour-monde.

Étape 0 - découvrez jsFiddle

cette jsFiddle a tout le code de cette réponse

Étape 1 - Inclure ember.js et les autres bibliothèques

Ember.js nécessite à la fois de jQuery et du Guidon. Assurez-vous que ces bibliothèques sont chargées avant ember.js:

<script type='text/javascript' src='http://code.jquery.com/jquery-1.9.1.js'></script>
<script type='text/javascript' src="http://cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.0.0-rc.3/handlebars.js"></script>
<script type='text/javascript' src="http://cdnjs.cloudflare.com/ajax/libs/ember.js/1.0.0-rc.1/ember.js"></script>

Étape 2 - description de l'interface utilisateur de l'application en utilisant un ou plusieurs modèles de guidon

Par défaut braise va remplacer le corps de votre page html à l'aide du contenu d'une ou de plusieurs handlbars modèles. Un jour, ces modèles seront en séparer .hbs fichiers assemblés par des pignons ou peut-être grunt.js. Pour l'instant, nous allons garder le tout dans un seul fichier et d'utiliser les balises de script.

Tout d'abord, nous allons ajouter un seul application modèle de:

<script type="text/x-handlebars" data-template-name="application">
  <div class="container">
    <h1>Ember.js is easy?<small> Minimum Viable Ember.js QuickStart Guide</small></h1>
    <p>{{message}}</p>
  </div>
</script>

Étape 3 - Initialiser votre braise application

Juste ajouter un bloc de script avec App = Ember.Application.create({}); à la charge ember.js et d'initialiser votre application.

<script type='text/javascript'>
  App = Ember.Application.create({});
</script>

Vous n'avez pas besoin de créer une base de braise à l'application, mais ce n'est pas très intéressant.

Étape 4: Ajouter un contrôleur

Braise évalue chaque guidon de modèles dans le contexte d'un contrôleur. Donc, application modèle a une correspondance ApplicationController. Ember est crée automatiquement si vous ne définissez pas un, mais ici, nous allons personnaliser il pour ajouter un message à la propriété.

<script type='text/javascript'>
App.ApplicationController = Ember.Controller.extend({
    message: 'This is the application template' 
});
</script>

Étape 5: Définir des itinéraires + plus de contrôleurs et de modèles

Braise routeur permet de combiner facilement des modèles/contrôleurs dans une application.

<script type='text/javascript'>
  App.Router.map(function() {
    this.route("index", { path: "/" });
    this.route("list", { path: "/list" });
  });

  App.IndexController = Ember.Controller.extend({
    message: 'Hello! See how index.hbs is evaluated in the context of IndexController' 
  });

  App.ListRoute = Ember.Route.extend({
    setupController: function(controller) {
      controller.set('content', ['angular.js', 'backbone.js', 'ember.js']);
    }
  });

</script>

Pour ce faire, nous allons modifier notre modèle d'application par l'ajout d'un {{outlet}} helper. Braise routeur rendra modèle approprié dans la prise de courant en fonction de l'utilisateur de la route. Nous allons également utiliser l' {{linkTo}} de l'aide pour ajouter des liens de navigation.

    <script type="text/x-handlebars" data-template-name="application">
      <div class="container">
          <h1>Ember.js is easy?<small> Minimum Viable Ember.js QuickStart Guide</small></h1>
        <p>{{message}}</p>
        <div class="row">
          {{#linkTo index class="span3 btn btn-large btn-block"}}Home{{/linkTo}}
          {{#linkTo list class="span3 btn btn-large btn-block"}}List{{/linkTo}}
        </div>
        {{outlet}}
      </div>
    </script>

    <script type="text/x-handlebars" data-template-name="list">
      <h3 class="demo-panel-title">This is the list template</h3>
      <ul>
      {{#each item in content}}
          <li>{{item}}</li>
      {{/each}}
       </ul>
    </script>

    <script type="text/x-handlebars" data-template-name="index">
      <h3 class="demo-panel-title">This is the index template</h3>
      <p>{{message}}</p>
    </script>

Fait!

Un exemple de cette application est disponible ici.

Vous pouvez utiliser cette jsFiddle comme un point de départ pour vos propres applications de braise

Prochaines Étapes...

  • Lire la Braise Guides
  • Peut-être acheter les Peepcode screencast
  • Poser des questions ici sur un Débordement de Pile ou dans la braise IRC

Pour référence, ma réponse:


Ma question est pour tout Ember.js d'experts, et certainement respectifs tutoriel auteurs: Quand dois-je utiliser des modèles de conception à partir d'un tutoriel, et quand de l'autre?

Ces deux tutoriels représentent les meilleures pratiques au moment où ils ont été écrits. Pour sûr, il ya quelque chose qui peut être appris de chacun, les deux sont malheureusement vouée à devenir obsolètes parce que ember.js se déplace très rapidement. Des deux, le Trek est de loin la plus actuelle.

Quels sont les composants de chacun sont préférences personnelles, et quels sont les composants qui s'avérera indispensable dans mon application évolue? Si vous développez une nouvelle application de braise, je ne recommanderais pas à la suite du Code Lab approche. Il est tout simplement trop out-of-date, pour être utile.

Dans le Code du Laboratoire de conception, de Braise semble plus proche de l'existant au sein de l'application (même si c'est 100% de sa coutume JS), alors que le Trek de l'application semble vivre plus à l'intérieur de Braise.

Votre commentaire est en plein dans le mille. CodeLab est prise de prendre avantage de la base de braise de composants et d'y accéder à partir de portée mondiale. Quand il a été écrit (il y a 9 mois), c'était assez commun, mais aujourd'hui des meilleures pratiques pour la rédaction de braise applications est beaucoup plus proche de ce Trek était en train de faire.

Cela dit, même Trek tutoriel est en train de devenir obsolète. Les composants qui ont été tenus ApplicationView et ApplicationController sont maintenant générés par le cadre lui-même.

De loin la plus courante de la ressource est l'ensemble des guides publiés à http://emberjs.com/guides/ - ils ont été écrits à partir du sol en place au cours des dernières semaines et de tenir compte de la dernière (pre-release) version de braise.

Je voudrais aussi vérifier trek wip projet ici: https://github.com/trek/ember-todos-with-build-tools-tests-and-other-modern-conveniences

EDIT:

@sly7_7 : je voudrais aussi donner un autre exemple, à l'aide de ember-data https://github.com/dgeb/ember_data_example

10voto

sly7_7 Points 9504

Il y a 30 minutes screencast fraîche faite par @tomdale : https://www.youtube.com/watch?v=Ga99hMi7wfY

4voto

Matthew Lehner Points 2216

Je vous recommande fortement de l'aide Yeoman et son accompagnement de braise générateur. Hors de la boîte, vous obtenez tous les outils dont vous avez besoin pour développer, tester et préparer une application pour la production. Comme un bonus supplémentaire, vous serez en mesure de répartir vos modèles en plusieurs fichiers et de commencer avec une intelligente structure de répertoire qui va vous faciliter dans la création d'une base de code maintenable.

J'ai écrit un tutoriel sur la faire fonctionner en 5 minutes environ. Il suffit de l'installer node.js et de suivre les instructions ici

2voto

Nath Points 623

The Fire Up Ember - Peepcode screencast vaut une montre.

1voto

Willem de Wit Points 2649

Je recommande d’utiliser le Starter Kit sur le site de braise-js. Il est maintenu par les gars qui a développé Ember-js, donc vous pouvez supposer l’architecture a raison.

Pour la dernière version de la trousse de démarrage, vous devriez regarder sur Github

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