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

时间:2015-06-23 17:20:04

标签: javascript node.js handlebars.js sails.js

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

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

很棒,我有一个布局文件,我的所有文件都以.handlebars woot结尾。

但我想做这样的事情:

查看:

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}}块而不重新加载页面。但那不行,(我试过)。 那我怎么做到这一点?

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

1 个答案:

答案 0 :(得分:2)

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

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