내 코드에서 책에 대한 정보를 저장하는 컬렉션에 액세스하려고합니다. 각 책의 ID 만 저장하는 배열을 반복합니다. 그럼 각 책템플릿 도우미에서 여러 번 액세스 할 수 있도록 JSON 문서를 저장할 수있는 곳은 어디입니까?
Template.myBorrows.helpers({
storeInSession:function(ilendbooksId) {
console.log("storeInSession is called");
var currentBorrowBook = Books.findOne({_id: ilendbooksId});
Session.setAuth('currentBorrowBook' , currentBorrowBook);
},
getAuthor: function() {
var currentBorrowBook = Session.get('currentBorrowBook');
return currentBorrowBook.ItemAttributes[0].Author[0];
},
});
나는 책 컬렉션의 책의 _id에 의해 도서 문서를 조회하고 대한 완전한 정보를 저장하는 책이라고 모음에서 책을 조회 할 해당 ID를 사용하고 있습니다. 그런 다음 세션에 저장하고 정보를 얻기 위해 적절한 메소드를 호출합니다. 유일한 문제는 책의 배열에 대해이 작업을 수행해야하므로 세션의 이전 문서를 덮어 쓰고 페이지의 모든 데이터가 가장 최신 세션 문서로 바뀔 때마다 문제가됩니다. 각 책의 문서를 어디서 어떻게 저장할 수 있으며 가장 최신의 세션 문서로 업데이트하지 않고 올바른 정보가 표시되는지 확인하십시오.
당신은 인생을 불필요하게 복잡하게 만듭니다. Meteor에 대한 블레이즈 기반 자습서를 수행 했습니까? 도우미에서 세션 변수를 설정하면 안됩니다. 대신 이벤트 핸들러에서 세션 변수를 설정하십시오. 책 모음을 반복하는 경우 각 책에 대한 메소드 호출이 필요 없으며 도우미 없이도 템플릿에서 각 책의 속성에 직접 액세스 할 수 있습니다. –
죄송합니다. 분명히해야합니다. 각 책에 대한 충분한 정보를 저장 한 모음집을 반복한다면 예, 각 속성에 액세스 할 수 있습니다. 실제로 각 책의 ID 만 저장하는 배열을 통해 반복됩니다. 그런 다음 해당 ID를 사용하여 각 책에 대한 완전한 정보를 저장하는 Books라는 컬렉션에서 책을 쿼리합니다. – Zorrow2008