2015-06-23 2 views
13

Так что в основном я хочу сделать что-то, что я могу сделать в ember с рулями, но без использования ember только sails.js и рулей.Эквивалент выхода Ember.js в Sails.js w/Handlebars (стиль SPA)

Я установил паруса проекта, например: sails new fooProject --template=handlebars после пробега npm install sails-generate-views-handlebars.

Отлично, у меня есть файл макета, все мои файлы заканчиваются на .handlebars woot.

Но я хотел бы сделать что-то вроде этого:

Просмотров:

views/index.handlebars

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

/views/partials/foo.handlebars

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

R Внешняя:

config/routes.js

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

Контроллер:

controllers/FooController

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

Так что я в конечном итоге с этим выход:

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

В любое время, когда мой пользователь просматривает, я хотел бы визуализировать новый частичный блок {{yield}} без перезагрузки страницы. Но это не работает (я пробовал). Итак, как бы я это сделал?

Чтобы пояснить, что я делаю, это приложение с одной страницей, без использования интерфейсного интерфейса.

+0

Если ничего не изменилось, паруса визуализуют шаблон в бэкэнд, поэтому я считаю, что нет возможности сделать это без использования интерфейсного интерфейса. –

ответ

2

Это не может быть сделано без рамки переднего конца (или использовать базовый XHR/AJAX vanilla JS, если вы хотите). Поскольку Sails - это серверный механизм и визуализация на стороне сервера, это означает, что страница должна быть перезагружена.

Вы можете использовать любую фреймворк переднего края и получать частичные виды из представлений Sails, а также, если вы хотите использовать механизм просмотра гибридного переднего конца (частичной нагрузки) и задней части (парусов).

+0

Итак, я знаю, что паруса отображаются на бэкэнд, я думаю, я больше ищу способ, которым я мог бы ответить частично, как вызов ajax. Так что, как гибридная система. Я хочу, чтобы на бэкэнд была маршрутизация, и я загружаю некоторые страницы, но мне нужны отдельные части * стиля *. – Ryan

+0

Чтобы достичь «гибридной системы», как я уже упоминал, просто создайте представление, подобное обычно в Sails. НО это представление - это не целый HTML. Лемм привести пример, предполагая, что вы используете Asngular и угловой-UI-маршрутизатор: вида Layout: '' это должно быть вашим основным макет. Вид кузова: '

here is body
' Вы можете использовать оба движка рендеринга Sails (EJS, Dust и т. Д.) И движок углового рендеринга на обоих этих представлениях. Но не забудьте вызвать только тело и надеть свой основной макет. –

Смежные вопросы