2014-01-31 4 views
2

Сначала очень новый для Метеор, так жаль, если я спрашиваю здесь очевидное. У меня проблемы с этим. Я просмотрел множество метеоров, проектов других народов и немного искал. Я смущен, так как для того, чтобы сделать шаблон реактивным, мне придется добавить сетку в коллекцию, публикующую через сервер/подписку через клиента с помощью Autodeps. Я не уверен, как добавить сетку к коллекции я пытался что-то вроде:Добавление массива в коллекцию

Template.grid.buttons = function(){ 
    var list = [] 
    for(var i=1*Math.random(); i<64; i++){ 
     list.push({value: i}) 

    } 
    //currentGame is the collection for the current game 
    currentGame.insert(list) 

    } 

    Template.grid.events({ 
    'click .button': function(ev) { 
     $(ev.target).css('visibility', 'hidden'); 
    } 
}); 

Это где я путаюсь я не могу добавить сетку в коллекцию и обновлять изменения кнопок если я не использую autodeps. Это будет игра с двумя игроками, цель игры - нажимать столько кнопок, сколько вы можете, прежде чем они исчезнут, так что, когда игрок 1 нажимает кнопку, она исчезает. Игрок 2 также должен видеть, что кнопка исчезает, а не можно щелкнуть по нему. Как добавить кнопки в коллекцию и внести каждое изменение в кнопки (щелчок и исчезновение) для обоих пользователей? Если вы хотите увидеть больше моего кода или увидеть игру в режиме реального времени: GitHub и вот The actual meteor project link

ответ

0

Collection.insert ожидает объект с пар ключ-значение. Вместо того, чтобы послать его массив, пересмотреть ваш код:

currentGame.insert({grid: list}); 

или даже лучше:

// Define currentUser to be the player whose actions executed this code 
currentGame.insert({player: currentUser, grid: list}); 
Смежные вопросы