【问题标题】:Equivalent of Ember.js yield in Sails.js w/Handlebars (SPA style)等效于带有把手的 Sails.js 中的 Ember.js 产量(SPA 风格)
【发布时间】:2015-09-09 15:22:03
【问题描述】:

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

我这样设置sails项目: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>

路由器:

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}} 块中,而无需重新加载页面。但这不起作用,(我已经尝试过)。 那么我将如何做到这一点呢?

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

【问题讨论】:

  • 除非有所改变,否则sails在后端渲染模板,所以我相信没有前端框架就没有办法轻松做到这一点。

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


【解决方案1】:

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

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

【讨论】:

  • 所以,我知道风帆在后端呈现,我想我更多的是在寻找一种可以部分响应 ajax 调用的方式。所以是的,就像一个混合系统。我想在后端路由,我正在加载一些页面,但我想要一些单页 style 部分。
  • 要实现我提到的“混合系统”,只需像往常一样在 Sails 中创建一个视图。但该视图不是一个完整的 HTML。让我举个例子,假设您使用的是 Asngular 和 Angular-ui-router: 布局视图:&lt;HTML&gt;&lt;body&gt;&lt;ui-view&gt;&lt;/body&gt;&lt;/HTML&gt; 这应该是您的基本布局。主体视图:&lt;div&gt;here is body&lt;/div&gt; 您可以在两个视图上同时使用 Sails 渲染引擎(EJS、Dust 等)和 Angular 渲染引擎。但请记住只调用一个主体并放入您的主布局中。
猜你喜欢
  • 2023-03-31
  • 2016-07-29
  • 1970-01-01
  • 2014-07-17
  • 2012-09-08
  • 2017-07-31
  • 1970-01-01
  • 1970-01-01
  • 2016-08-13
相关资源
最近更新 更多