2015-02-11 7 views
5

Ich habe gerade damit begonnen, unsere Ember-Anwendung neu zu strukturieren, um Pods zu verwenden, damit unsere Verzeichnis-/Dateistruktur übersichtlicher ist. Zur gleichen Zeit habe ich Ember-Cli aufgerüstet, damit ich mit der folgenden Konfiguration leite:Ember-Cli Refactoring zur Verwendung von Pods

Ember  : 1.8.1 
Ember Data : 1.0.0-beta.12 
Handlebars : 1.3.0 
jQuery  : 1.11.2 

ich die environment.js aktualisiert haben, gehören die folgenden

modulePrefix: 'emberjs', 
podModulePrefix: 'emberjs/pods', 

Ich habe auch versucht, setze es auf 'app/pods' und nur 'pods', aber ohne Glück.

Die Verzeichnisstruktur ist wie folgt:

emberjs/ 
    app/ 
     controllers - original location, still has some original controllers here for other parts of the system 
     pods/ 
      job/ 
      parts/ 
       index/ 
        controller.js 
        route.js 
        template.hbs 
       edit/ 
        controller.js 
        route.js 
        template.hbs 

Die Anwendung ok bauen, und wenn ich in den emberjs.js suchen Datei, die ich die verschiedenen definiert für die Schoten-Controller, Routen und Vorlagen sehen

z.B

define('emberjs/pods/job/parts/index/controller', ['exports', 'ember'], function (exports, Ember) { 
define('emberjs/pods/job/parts/index/route', ['exports', 'ember'], function (exports, Ember) { 
define('emberjs/pods/job/parts/index/template', ['exports', 'ember'], function (exports, Ember) { 

so etwas erkennt die Pods Struktur.

Aber das Problem kommt, wenn ich versuche, auf diese Route zuzugreifen. Ich erhalte eine Warnmeldung in der Konsole und bekomme nichts angezeigt - im Grunde sagt es, dass es die Vorlage finden kann, und es scheint, dass es einen generierten Controller verwendet.

generated -> controller:parts Object {fullName: "controller:parts"} 
vendor-ver-1423651170000.js:28585 Could not find "parts" template or view. Nothing will be rendered Object {fullName: "template:parts"} 
vendor-ver-1423651170000.js:28585 generated -> controller:parts.index Object {fullName: "controller:parts.index"} 
vendor-ver-1423651170000.js:28585 Could not find "parts.index" template or view. Nothing will be rendered Object {fullName: "template:parts.index"} 
vendor-ver-1423651170000.js:28585 Transitioned into 'jobs.job.parts.index' 

Wenn ich im Ember Inspektoren in Chrome sehe ich sehe, dass im Abschnitt Route es Teile/Index zeigt Route als Teile/Index und Vorlage von Teilen/Index-Controller haben, wie Teile/index. Soll ich das erwarten? Ich bin nicht sicher, wie Ember die verschiedenen Teile bei der Verwendung von Pods löst.

Um dies zu testen, legte ich eine Kopie der Vorlage in das Verzeichnis templates/parts und lud sie neu. Diesmal hat es die Vorlage gefunden und gerendert, aber es fehlten die Daten - wahrscheinlich aufgrund der Verwendung der Standardroute und des Controllers.

Hat jemand irgendeine Idee, was ich falsch mache. habe ich irgendwo einen Schritt verpasst oder falsch konfiguriert?

+0

Wie sieht Ihre Routendatei aus? – jmurphyau

+0

Versuchen Sie in der 'job' und' job.parts' Route eine 'template.hbs' Datei mit nur' {{outlet}} 'hinzuzufügen. – jax

+0

Schauen Sie sich diese - http://www.programwitherik.com/ember-pods/ -, könnte hilfreich sein –

Antwort

0

Versuchen Sie alte Routen/Controller/Vorlagen zu entfernen, wenn Sie neue hinzufügen. Behalte keine zwei Kopien.

Auch könnte es mit Ihrer Dateistruktur nicht verwandt sein. Versuchen Sie, eine leere App zu erstellen und Dateien nacheinander zu kopieren, um zu sehen, wann das Problem auftritt. Verwenden Sie Generatoren und überschreiben Sie dann die generierten Dateien wenn möglich.

Verwandte Themen