Tôi có một bộ sưu tập được xuất bản trên máy chủ và tự động đăng ký trên máy khách. Tôi muốn đặt mục 'đã chọn' trong phiên và có bản cập nhật mẫu để chỉ hiển thị mục đã chọn, nhưng có vẻ như điều này chỉ có thể được thực hiện với một vòng lặp tới máy chủ (hoàn toàn không cần thiết).Phản ứng chỉ phía máy khách với Meteor?
chung:
var Missions = new Meteor.Collection('missions');
Chủ đầu tư:
Template.missionList.missions = function() {
var currMission = Session.get('selectedMission');
var searchMission = {};
if(currMission)
{
searchMission['_id'] = currMission;
}
return Missions.find(searchMission);
};
Template.missionList.events({
'click div.mission': function (e, t) {
Session.set('selectedMission',
this._id == Session.get('selectedMission') ? null : this._id
);
}
});
Template.mission.isSelected = function() {
return this._id == Session.get('selectedMission');
};
Meteor.autosubscribe(function() {
Meteor.subscribe("missions");
});
Server:
Meteor.publish('missions', function() {
// there are really some filters here, but removed for simplicity
return Missions.find();
});
mẫu:
<template name="missionList">
<div class="missionList">
{{#each missions}}
{{> mission}}
{{/each}}
</div>
</template>
<template name="mission">
<div class="mission{{#if isSelected}} selected{{/if}}">details</div>
</template>
Yêu cầu của tôi là dành cho Missions.find()
trong Template.missionList.missions
để lọc kết quả được lưu trong bộ nhớ cache phía máy khách, thay vì yêu cầu lại từ máy chủ, nhưng dường như tôi không thể tìm thấy cờ hoặc cài đặt để cho phép tôi thông báo cho minimongo chỉ sử dụng dữ liệu hiện có. Tôi cũng không hoàn toàn chắc chắn nếu đây là những gì tôi nên làm, tôi bắt đầu chỉ bằng cách sử dụng jQuery để ẩn các nhiệm vụ không được lựa chọn nhưng nhận được vòng Meteor của tôi và nó có vẻ tự nhiên để sử dụng dữ liệu và khả năng phản ứng để thúc đẩy lựa chọn/lọc cục bộ.
Có cách nào tránh vòng tròn hoặc tôi chỉ sử dụng sai không?
Cảm ơn bạn đã làm rõ, đây là những gì tôi mong đợi, nhưng có vẻ khó dự đoán, vì đôi khi không có hoạt động mạng nhưng thời gian khác có. Có lẽ nó chỉ là một chút ngẫu nhiên khi xử lý đồng bộ. Chúc mừng :) –
Đây là cách bạn thấy [gói ddp trong thời gian thực] (http://meteorhacks.com/discover-meteor-ddp-in-realtime.html) –