2015-08-31 2 views
0

Я создал коллекцию с двумя предметами на месте (введенную с помощью командной консоли), и теперь я разрабатываю способ ввода новых элементов в коллекцию из приложения.Метеор вставить элемент в коллекцию не работает

Когда я набираю новое имя и нажимаю [enter], журнал показывает, что форма отправлена ​​и что событие приняло входные данные на борту, но фактическая коллекция остается нетронутой только на двух элементах.

Учитывая, что журнал показывает, что событие правильно считывает ввод формы, я подозреваю, что проблема находится в пределах Blogs.insert бит, но я просто не уверен, что случилось.

HTML:

<form class="newblog"> 
    <input type="text" name="blogname" placeholder="New Blog Name"/> 
</form> 

JS:

Blogs = new Mongo.Collection("blogs"); 

//...irrelevant stuff for the rest of the app... 

Template.blogroll.events({ 
    "submit .newblog": function (event) { 
     // prevent browser default behaviour 
     event.preventDefault(); 

     // log input 
     console.log(event); 

     // get value from form element 
     var blog_to_enter = event.target.blogname.value; 

     // insert a blog into the collection 
     Blogs.insert({ 
      blog: blog_to_enter, 
      created: new Date() 
     }); 

     // clear form 
     event.target.blogname.value = ""; 
    } 
}); 
+0

Вы видите ошибки? – PhilippSpo

ответ

2

Посмотреть это meteorpad для примера. Возможно, вы определили некоторые правила allow/deny, запрещающие вставку блогов, или вы просто забыли подписаться на коллекцию Blog?

+0

Спасибо, перемещение формы и структуры внутри шаблона работало. Также дополнительная благодарность за то, что вы познакомили меня с метеоритом - это похоже на полезный инструмент. Если бы я мог дважды проголосовать, я бы это сделал. –

+0

Ха-ха, приветствую ;-) – PhilippSpo

0

Не определить вар blog_to_enter = event.target.blogname.value; Вместо:

Blogs.insert({ 
      blog: blog_to_enter, 
      created: new Date() 
     }); 

Использование "название_блога":

Blogs.insert({ 
      blog: blogname, 
      created: new Date() 
     }); 

Он должен работать таким образом

+0

Увы, проблема не устранена. –

+0

Вы уверены, что это в «blogroll»? Template.blogroll? –

Смежные вопросы