2015-02-11 14 views
5

Właśnie zacząłem refaktoryzować naszą aplikację Ember, aby używać Pods, aby nasza struktura katalogów/plików była łatwiejsza w zarządzaniu. Jednocześnie mam zmodernizowane Ember-CLI tak Używam o następującej konfiguracji:Refinansowanie Ember-Cli w celu użycia strąków

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

mam zaktualizowanego The environment.js zawierać następujące

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

Próbowałem również do ustaw go na "app/pods" i po prostu "pods", ale bez powodzenia.

Struktura katalogu jest następujący:

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 

Aplikacja zbudować ok, a jeśli patrzę w emberjs.js złożyć widzę różne określa dla strąków kontrolerów, trasy i szablonów

na przykład

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) { 

coś więc rozpoznaje strukturę strąków.

Ale problem pojawia się, gdy próbuję uzyskać dostęp do tej trasy. Dostaję komunikat ostrzegawczy na konsoli i nic się nie wyświetla - w zasadzie mówi, że może znaleźć szablon i wygląda na to, że używa wygenerowanego kontrolera.

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' 

Jeśli patrzę w Inspektorze Ember w Chrome widzę, że w sekcji Trasy pokazuje Części/indeks mieć trasę kontrolera części/index/index jako części i szablonu jako części/index. Czy tego oczekuję? Nie jestem pewien, jak Ember rozwiązuje różne części podczas korzystania z pods.

Aby to przetestować, umieściłem kopię szablonu w katalogu szablonów/części i ponownie go załadowałem. Tym razem znalazł szablon i wyrenderował go, ale brakowało danych - prawdopodobnie z powodu domyślnej trasy i kontrolera.

Czy ktoś ma pojęcie, co robię źle. czy gdzieś pominąłem jakiś krok lub skonfigurowałem go niepoprawnie?

+0

Jak wygląda twój plik trasy? – jmurphyau

+0

Na trasie 'zadanie' i' job.parts' spróbuj dodać plik 'template.hbs' zawierający tylko' {{outlet}} 'wewnątrz. – jax

+0

to numer - http://www.programwitherik.com/ember-pods/ - może być pomocny. –

Odpowiedz

0

Spróbuj usunąć stare trasy/kontrolery/szablony podczas dodawania nowych. Nie trzymaj dwóch kopii.

Może to być również niepowiązane ze strukturą plików. Spróbuj utworzyć pustą aplikację i skopiuj pliki jeden po drugim, aby zobaczyć, kiedy problem zaczyna się dziać. Użyj generatorów, a następnie nadpisaj wygenerowane pliki swoim, jeśli to możliwe.