2016-12-16 7 views
1

이야기 : 내가 각도 1. 유성 1.4을 사용했습니다 그리고 내가 "도도을 만들고 싶어 할 일 목록 UI가 잘 작동 userId를 ", 그것은 자동 업데이트 UI 나는 새로운 하나를 추가 할 수 후":

var now = new Date(); 
var start = new Date(); 
start.setHours(0, 0, 0, 0); 
this.helpers({ 
    todos() { 
    return Todos.find({createdAt: {$gte: start, $lt: now}, userId: Meteor.userId()}, { 
      sort: { 
       createdAt: -1 
      } 
     }); 
    }, 
    currentUser() { 
     return Meteor.user(); 
    } 
}); 

이 문제 내가 함께 Meteor.publish을 사용Meteor.publish를 사용하여 개인, 여기에 클라이언트 코드입니다 " 할 것. 하지만 createdAt: {$gte: start, $lt: now}으로 Meteor.publish 필터를 추가 한 후에는 페이지를 새로 고침 (F5)해야 새로운 To Do를 볼 수 있습니다. 다음은 서버 측 게시 코드입니다.

Meteor.publish('todos', function tasksPublication() { 
    var now = new Date(); 
    var start = new Date(); 
    start.setHours(0, 0, 0, 0); 
    return Todos.find({createdAt: {$gte: start, $lt: now}, userId: this.userId}); 
}); 

누구나 수정 방법을 알고 계십니까?

답변

0

이 버그가 해결되었습니다.

  1. 클라이언트 UI가 캐시에 마시고 떠들되었다 (miniMongo)의 "Todos.find ({createdAt : 나는 유성의 캐시에 깊은 아니었다으로, 이유는 아래 내 생각이었다 {$ GTE : $의 LT를 시작합니다 : now}, userId : this.userId}) "
  2. 새로운 Todo를 하나 삽입하면 먼저 miniMongo에 삽입됩니다.
  3. miniMongo는 # 1 쿼리를 다시 실행하지만 "지금"은 # 1 시간이 "지금"입니다. 그리고 # 2의 결과가 맞지 않는 것을 발견했습니다. 그래서 클라이언트에서 새 레코드를 제거했습니다. 당신이 어떤 다른 생각을 가지고있는 경우 Code Change

    은 알려 주시기 바랍니다 :

그리고 여기 내 변화이다.

감사합니다.