2014-02-12 8 views
6

Ich habe begonnen, Ember App-Kit zu verwenden und durchlesen its guides. Allerdings habe ich Probleme, die Unterschiede zwischen einer normalen App und dem Ember App Kit so zu strukturieren, dass die verschiedenen Bits mit ES6-Modulen strukturiert werden, anstatt alles in eine globale Variable zu stopfen, die als Namespace (z. B. App) verwendet wird.Mein Kopf um Ember App Kit wickeln-Unterschiede im Vergleich zur Arbeit mit Plain Ember

fand ich, dass dieser Aspekt erklärt nicht ganz klar ist:

  • Wie Ember seine Magie in Autoerzeugungsmodelle anwenden, Ansichten, Routen und Controller?
  • Wo erwartet es sie zu finden?
  • Welche Namenskonventionen sollte ich befolgen?
  • Wenn ich eine Vorlage, Route oder Controller erstellt habe, und Ember tut nicht finden/erkennen, und erzeugt nur einen Standard an seiner Stelle, wie finde ich heraus, wo es sucht; oder sonst in dieser Situation debuggen?
  • Wie ist das bei der Entwicklung der Standard-Ember-App anders als bei der Entwicklung mit dem Ember-App-Kit?

Sehr geschätzt im Voraus!


EDIT (20140506):

Diese Ressourcen erklären ES6 Module und EAK wirklich gut:

+0

@ToranBillups: Ich mag wirklich, wie Sie EAK dekonstruiert in seine Bestandteile - es hilft wirklich, es sehr gut zu erklären; und ich muss sagen, das war eine höllisch bessere Antwort, als ich erwartet hatte. Wenn Sie den Link als Antwort erneut posten möchten, gebe ich Ihnen die Lösung. Prost! – bguiz

Antwort

5

Ich habe vor ein paar Wochen eine Blog-Serie zu diesem Thema gemacht. Ich beginne mit einer einfachen (globals) ember App und wandle sie in 8 verschiedene Posts um.

Am Ende haben Sie eine Gruntfile w/wie EAK Aufgaben (aber man alles von Hand -on Schritt zu einer Zeit aufgebaut haben)

+0

Ich habe deine Antwort hier gefunden, weil ich auch Probleme habe herauszufinden, wie man EAK nutzt. Sollte ich diese Antwort als Hinweis darauf nehmen, dass der ursprüngliche EAK nicht gut dokumentiert ist? Werde ich besser verstehen, wie man eine App besser plant und baut, indem ich deinem Ansatz folge? Vielen Dank. – Grapho

+1

Ich denke EAK ist ziemlich gut dokumentiert, aber es ist eine andere Art von Dokumentation. Die Blog-Serie, die ich geschrieben habe, erklärt, wie du EAK von Anfang bis Ende selbst erstellst. Es soll zeigen, wie/warum EAK und am Ende die Gruntfile, die Sie bauen, ist fast identisch (in der Funktionalität), was Sie mit EAK aus der Box bekommen. Wenn Sie meinen Ansatz verwenden, haben Sie dasselbe Ergebnis, aber wenn Sie es selbst gemacht haben, wissen Sie, wie und wo Sie den Build optimieren können, wenn Sie ihn benötigen. –

+0

Danke für die Eingabe. Ich werde mal nachschauen :) – Grapho

4

Stefan Penner erklärt modules auf der Seite des Ember App Kits, aber um es zusammenzufassen:

Ember App Kit verwendet die ES6 Module Transpiler, um alle Ember-Klassen Ihrer App in AMD-Module umzuwandeln. In "normalen" Ember Entwicklung ordnen Sie Klassen als Eigenschaften Ihrer App ...

App.IndexController = Ember.Controller.extend(...); 

Aber mit EAK, schreiben Sie Ihre Module in ES6 Syntax:

export default Ember.Controller.extend(...); 

Die Transpiler wird die Datei verwenden nennen als Grundlage für seine Modulnamen (unter der Annahme, dass es bei app/controllers/index.js gespeichert ist:

define('controllers/index', Ember.Controller.extend(...)); 

Ember App Kit dann eine benutzerdefinierte Resolver verwendet Module mit AMD zu schauen, anstatt auf der Suche nach sie als Camel Cased Eigenschaften Ihrer App. (Ich habe nicht den Vertreter, um einen anderen Link zu posten, also googlen Sie nach ember-jj-abrams-resolver.)

Wenn Ember nach einem Modul sucht und es nicht findet, verhält es sich genauso wie es draußen ist von EAK.

+0

Vielen Dank für Ihre Antwort, es hilft sicherlich. Ich schätze, ich muss mich nur in die Interna des [Resolver, den du erwähnt hast] (https://github.com/stefanpenner/ember-jj-abram-resolver) vertiefen, um herauszufinden, wo er nach Dingen sucht, und nach der Benennung Konventionen erwartet. – bguiz