我喜歡流星的一件事情是,客戶端的更新,插入和刪除操作會自動保存在服務器端。大多數時候這很棒。但是有時候你想要使用Meteor的集合來顯示邏輯,或者你想要特定的,分階段的'保存',用戶必須專門提交。因此,您想繼續使用集合進行渲染,但您不一定希望將這些更改保存爲到數據庫。與流星一起'保存'
也許一個例子將有助於說明這一點。
我有一個呈現指定地圖原點的窗體。
<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')) };
});
而當我編輯地圖時,將從數據庫中讀取經緯度並進行適當的渲染。
但我也想讓用戶選擇一個新的地圖來源和更新模板,而不保存新的地圖來源。我希望用戶點擊地圖,然後我可以使用該地圖更新客戶端的集合,然後該集合將更新模板。但是我想要用戶專門點擊save
和,然後有新的緯度和經度保持在服務器上。在Backbone中這樣的東西很容易(其中set
和save
不同),但在流星中看起來並不容易。
有沒有人有處理這些情況的好策略?
林有點困惑,如果你想要用戶更新地圖位置而不保存它,不能直接告訴地圖移動到不同的位置嗎?當他們按下保存,然後在服務器上更新它? – Akshat 2013-03-24 09:37:19
有時候我可以做到這一點,但在示例中,我顯示我希望模板使用新選擇的地圖位置進行更新。我想使用這個模板_without_不得不將新的位置保存到數據庫。我想臨時設置屬性,而不是_saving_屬性。 – bento 2013-03-24 18:18:29