我有一个带有索引操作的MenuItemController,它对mongodb数据库进行自定义查询,然后使用res.view({menuitems:menuitems})加载返回数据的视图(ejs) 现在问题是,我想在创建新的menuitem时实时更新ejs视图。我已经调用了MenuItem.subscribe(menuitems)。 Sails文档显示了如何订阅和接收websockets(http://sailsjs.org/#/documentation/reference/websockets),但在所有示例中,它们最后只执行console.log(),没有关于如何将数据传递到ejs模板的示例。
我已经尝试过使用angular而不是ejs,但是在使用工作时遇到各种麻烦所以我宁愿坚持使用vanilla Sails.js。
答案 0 :(得分:0)
您无法实时更改服务器呈现的.ejs
视图,因为它们很好地在服务器上呈现。这正是像Angular这样的框架。 Sails试图通过禁止使用res.view
进行Socket响应来强制执行此操作,但如果您真的想要,可以:
res.send(aWholeBunchOfHTML)
如果您正在使用任何类型的前端库(如jQuery),您将以这种方式丢失所有绑定,并且这可能会使您的应用程序比“实时”少一点,从而浪费带宽。
但重申一下,使用Sails无法改变已经渲染的视图的部分。如果您在使Sails和Angular一起工作时遇到问题,我建议您查看ActivityOverlord 2.0视频广告和repo。