javascript - 'saves' 与 Meteor 上演

标签 javascript meteor

我喜欢 Meteor 的一件事是,在客户端完成的更新、插入和删除会自动保留在服务器端。大多数时候这都很棒。但有时您想要使用 Meteor 的集合来显示逻辑,或者您想要用户必须专门提交的特定的分阶段“保存”。因此,您希望继续使用集合进行渲染,但不一定希望将这些更改保存到数据库中。

也许一个例子将有助于阐明这一点。

我有一个呈现指定 map 原点的表单。

<template name='map'>
 <button class='select-origin'>Select Origin</button>
 {{#with currentMap}}
   {{this.latitude}} - {{this.longitude}}
 {{/with}}
</template>

Template.map.helpers({
 currentMap: function(){ return Maps.findOne(Session.get('currentMap')) };
});

当我编辑 map 时,将从数据库中读取纬度和经度并进行适当渲染。

但我还想让用户选择一个新的 map 原点并更新模板而不保存新的 map 原点。我希望用户单击 map ,然后我可以使用它来更新客户端集合,然后客户端将更新模板。但我希望用户专门单击“保存”,然后将新的纬度和经度保留在服务器上。这样的事情在 Backbone 中很容易(其中 setsave 是不同的),但在 Meteor 中似乎并不容易。

有人有处理这些情况的好策略吗?

最佳答案

对于此类问题,我使用 Session 对象

您已将当前 map 保留在 session 中。您可以将所有更改应用于 session 中的对象,一旦用户单击“保存”,就更新 MiniMongo 实例并让 Meteor 更新服务器。

我不确定 CurrentMap 对象包含哪些属性,因为您的代码中未显示设置操作,但似乎您可以替换

Template.map.helpers({
 currentMap: function(){ return Maps.findOne(Session.get('currentMap')) };
});

Template.map.helpers({
 currentMap: function(){ return Session.get('currentMap') };
});

关于javascript - 'saves' 与 Meteor 上演,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15595128/

相关文章:

meteor - 如何将 `moment.js` 与 Meteor 一起使用?

javascript - 在确认弹出窗口进入 Angular 4之前如何获取刚刚点击的网址

javascript - 如何使用 Meteor 在 Mongo 中插入 N 个元素到文档中

javascript - 是否显示:none automatically means that iframe and it's content not exists?

javascript - 如何找到数组中出现偶数次的整数?

javascript - 跟踪 DOM 元素上的事件监听器

collections - 在模板助手中使用 Meteor.users()

javascript - Meteor:防止模板重新渲染

meteor - 用户刚刚登录或刚刚注销后如何重定向

meteor - Meteor 加载的 css 和 js 文件的顺序