我试图改变一个集合的属性,让他们在呈现前的绝对位置。如果该项目是集合中的第一个,则会给出0的顶部和左边的0。其次是顶部为0,左边为20等。但是,当我尝试将此逻辑构建到我的模板中时,它会导致无限循环。这里是我的代码:流星无限循环
if (Meteor.is_client) {
_.extend(Template.movies, {
movies: function() {
var movies = Movies.find({}, {sort: {name: 1}});
var determineLocation = function(){
console.log('hello');
var count = 0;
movies.forEach(function(movie){
// do some math
Movies.update(movie._id, {$set: {left: 10, top: 20}});
count++;
});
};
determineLocation();
return movies;
}
});
};
我认为它这样做,因为Movies.update命令触发短片功能再次进行渲染,从而导致无限循环。我应该如何解决这个问题?在哪里放置determinLocation函数的适当位置?
另外我一直在写博客,遇到无限循环的情况,我分离了渲染,看看doctormehmet dot blogspot dot com,如果你认为它可能有帮助。我不使用启动,而是使用autorun,但情况有点不同。 – DrM