2013-04-07 17 views
9

Mam aplikację Rails, która jest podzielona na trzy części (prawie 3 aplikacje, które udostępniają modele). Chciałbym, aby każda sekcja z przypisanymi nazwami posiadała własną aplikację Ember. Te aplikacje nigdy nie są ładowane w tym samym układzie, więc nie musisz nic o sobie wiedzieć. W rzeczywistości chciałbym zachować kod jako oddzielny, jak to możliwe, gdy aplikacja może ostatecznie zostać naprawdę podzielona.Ember-Rails i namespaced templates

Próbuję to zrobić za pomocą klejnotu ember-rails.

Zasadniczo jest to jak to pytanie: How can I specify an alternative directory for my HandlebarsJS templates with the ember-rails gem?

A odpowiedź nie działa, ale jestem prawie pewien, używając templates_root ogranicza mnie tylko jedna przestrzeń nazw. Nie mogłem także mieć przestrzeni nazw admin.js i admin/templates, a także przestrzeni nazw customer.js i client/templates.

Więc czy ktoś wie, czy ember-rails będzie obsługiwać wiele aplikacji Ember z wyświetlonymi nazwami i będzie renderować wiele katalogów?

Dzięki!

+0

Zbieranie informacji nie ten wniosek ciągnąć Github (https://github.com/emberjs/ember-rails/pull/111), doda ostateczną odpowiedź tutaj, gdy pojawi się. – ootoovak

Odpowiedz

12

Jako opublikowane here możesz mieć szablony przestrzeni nazw, dodając niestandardowy przelicznik do każdej aplikacji.

App1 = Ember.Application.create({ 
    Resolver: Ember.DefaultResolver.extend({ 
    resolveTemplate: function(parsedName) { 
     parsedName.fullNameWithoutType = "app1/" + parsedName.fullNameWithoutType; 
     return this._super(parsedName); 
    } 
    }) 
}); 

App2 = Ember.Application.create({ 
    Resolver: Ember.DefaultResolver.extend({ 
    resolveTemplate: function(parsedName) { 
     parsedName.fullNameWithoutType = "app2/" + parsedName.fullNameWithoutType; 
     return this._super(parsedName); 
    } 
    }) 
}); 

App3 = Ember.Application.create({ 
    Resolver: Ember.DefaultResolver.extend({ 
    resolveTemplate: function(parsedName) { 
     parsedName.fullNameWithoutType = "app3/" + parsedName.fullNameWithoutType; 
     return this._super(parsedName); 
    } 
    }) 
}); 
+1

Magia. Dzięki!! – Charlie

+0

Ogromna pomoc, dziękuję. –

Powiązane problemy