具有Handlebars的Sails.js中的Ember.js等效率(SPA风格)

Rya*_*yan 13 javascript node.js handlebars.js sails.js

所以基本上我想做一些我可以用车把做的东西,但不使用ember只是sails.js和把手.

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

太棒了我有一个布局文件,我的所有文件都以.handlebarswoot 结尾.

但我想做这样的事情:

浏览次数:

views/index.handlebars

{{>header}}
    {{yield}}
{{>footer}}
Run Code Online (Sandbox Code Playgroud)

/views/partials/foo.handlebars

<div class="foo stuff">...</div>
Run Code Online (Sandbox Code Playgroud)

路由器:

config/routes.js

'/': {
    view: 'index',
    controller: 'FooController',
    action: 'index'
}
Run Code Online (Sandbox Code Playgroud)

控制器:

controllers/FooController

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

所以我最终得到了这个输出:

<header>...</header>
    <div class="foo stuff">
<footer>...</footer>
Run Code Online (Sandbox Code Playgroud)

无论何时我的用户导航,我都想将新的部分渲染到该{{yield}}块中,而无需重新加载页面.但那不行,(我试过).那我怎么做到这一点?

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

And*_*ara 2

如果没有前端框架,这是无法完成的(或者如果您愿意,可以使用基本的 XHR/AJAX vanilla JS)。由于 Sails 是服务器端引擎并在服务器端渲染视图,这意味着页面必须重新加载。

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