2015-06-23 5 views
13

Więc w zasadzie chcę zrobić coś, co mogę zrobić w ember z kierownicą, ale bez używania embera tylko sails.js i kierownicę.Ekwiwalent Ember.js plon w Sails.js w/Handlebars (styl SPA)

Przygotowuję projekt żagli tak: sails new fooProject --template=handlebars po uruchomieniu npm install sails-generate-views-handlebars.

Świetne Mam plik układu, wszystkie moje pliki kończą się na .handlebars woot.

Ale chciałbym zrobić coś takiego:

odsłony:

views/index.handlebars

{{>header}} 
    {{yield}} 
{{>footer}} 

/views/partials/foo.handlebars

<div class="foo stuff">...</div> 

R Zewnętrzna:

config/routes.js

'/': { 
    view: 'index', 
    controller: 'FooController', 
    action: 'index' 
} 

Kontroler:

controllers/FooController

index: function(req, res){ 
    return res.view({partials: 'partials/foo'}); // <-- I want foo partial in the yield. 
} 

Tak, że skończę z tym wyjścia:

<header>...</header> 
    <div class="foo stuff"> 
<footer>...</footer> 

Za każdym razem, gdy mój użytkownik nawiguje, chciałbym renderować nowy element do tego bloku {{yield}} bez ponownego ładowania strony. Ale to nie działa, (próbowałem). Jak mógłbym to zrobić?

Aby pomóc w wyjaśnieniu, do czego dążę, wystarczy jedna strona aplikacji, bez konieczności korzystania z frameworka front-end.

+0

O ile rzeczy nie zostały zmienione, żagle renderują szablon w backendach, więc uważam, że nie ma sposobu, aby to zrobić bez łatwego dostępu do front-end framework. –

Odpowiedz

2

Nie można tego zrobić bez framugi z przodu (lub jeśli chcesz użyć podstawowego XHR/AJAX vanas JS). Ponieważ Sails jest silnikiem po stronie serwera i renderuje widoki po stronie serwera, co oznacza, że ​​strona musi zostać przeładowana.

Możesz użyć dowolnej ramki front-end, a także uzyskać widoki częściowe z widoków Sails, jeśli chcesz hybrydowy silnik widoku z przodu (częściowe ładowanie) i widok z tyłu (Sails).

+0

Więc, jestem świadomy, że żagle renderują się na zapleczu, myślę, że bardziej szukam sposobu, w jaki mógłbym odpowiedzieć z częściowym lubeniem wywołania ajaxowego. Tak jak system hybrydowy. Chcę routing na zapleczu i robię niektóre ładunki strony, ale chcę niektóre strony * styl * części. – Ryan

+0

Aby osiągnąć "system hybrydowy", jak już wspomniałem, po prostu utwórz widok jak zwykle w żagle. ALE ten widok nie jest całym HTML. Lemingi dać przykład, zakładając, że używasz Asngular i kątowe-UI-routera: Układ widok: '' powinno to być podstawowy układ. –