相当于Sails.js中Ember.js的收益率w/Handlebars(SPA风格)

Equivalent of Ember.js yield in Sails.js w/Handlebars (SPA style)

本文关键字:js Handlebars SPA 风格 收益率 Sails Ember 相当于      更新时间:2023-09-26

所以基本上我想做一些我可以在ember中用手把做的事情,但不使用ember,只使用sails.js和手把。

在运行npm install sails-generate-views-handlebars之后,我设置了这样的sails项目:sails new fooProject --template=handlebars

太好了,我有一个布局文件,我所有的文件都以.handlebars结尾。

但我想做这样的事情:

视图:

views/index.handlebars

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

/views/partials/foo.handlebars

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

路由器:

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}}块中。但这不起作用,(我试过了)。那么我该如何做到这一点呢?

为了帮助澄清我想要的是单页应用程序的感觉,而不必使用前端框架。

如果没有前端框架(或者如果你想使用基本的XHR/AJAX香草JS),这是无法实现的。由于Sails是服务器端引擎,在服务器端呈现视图,这意味着必须重新加载页面。

如果你想混合前端(部分负载)和后端(Sails)视图引擎,你可以使用任何前端框架,也可以从Sails的视图中获得任何部分视图。