2016-01-12 2 views
0

У меня возникли проблемы с получением моего очень простого учебника по метеоризму, чтобы прочитать мои коллекции в Mongodb и распечатать на странице. Это официальная палитра, найденная на веб-сайте метеора. Любая помощь приветствуется. Если кто-то хочет подключиться к рабочей области и внести изменения, дайте мне знать, и я могу предоставить доступ.Использование Meteor с MongoDB

Вот ссылка на мой рабочий: https://ide.c9.io/hilldesigns/meteor

Tasks = new Mongo.Collection("tasks"); 

if (Meteor.isClient) { 
// This code only runs on the client 
Template.body.helpers({ 
    tasks: function() { 
    return Tasks.find({}); 
    } 
}); 
} 

Вот HTML разметка:

<head> 
<title>Todo List</title> 
</head> 

<body> 
    <div class="container"> 
<header> 
    <h1>Todo List</h1> 
</header> 
    <ul> 
    {{#each tasks}} 
    {{> task}} 
    {{/each}} 
    </ul> 
</div> 
</body> 

<template name="task"> 
    <li>{{text}}</li> 
</template> 
+0

Ваш помощник определяет «задачу», но ваш шаблон использует «задачи». –

+0

Я пробовал это также без успеха @BrendanTurner – MontyTheMack

+0

Вы не можете прикрепить вспомогательный элемент Template к телу. Вы должны создать шаблон (возможно, «taskList») и включить его через {{> taskList}}, а затем указать свой помощник шаблона на taskList вместо тела. –

ответ

1

Не уверен, подключая помощника к телу, оно не поддерживается в разделе 1.2.1 (последний релиз). Если вы откроете консоль в своем браузере, она должна показать ошибку о недоступности доступа к помощникам по неопределенным.

Таким образом, чтобы сделать его работу ...

<head> 
<title>Todo List</title> 
</head> 

<body> 
    <div class="container"> 
<header> 
    <h1>Todo List</h1> 
</header> 
    {{> todos}} 
</div> 
</body> 

<template name="todos"> 
    <ul> 
    {{#each tasks}} 
    {{> task}} 
    {{/each}} 
</ul> 
</template> 

<template name="task"> 
    <li>{{text}}</li> 
</template> 

с

Tasks = new Mongo.Collection("tasks"); 

if (Meteor.isClient) { 
// This code only runs on the client 
Template.todos.helpers({ 
    tasks: function() { 
    return Tasks.find({}); 
    } 
}); 
} 

отлично работает

Вот мой список метеор

autopublish   1.0.4 (For prototyping only) Publish the entire database to all clients 
blaze-html-templates 1.0.1 Compile HTML templates into reactive UI with Meteor Blaze 
ecmascript   0.1.6* Compiler plugin that supports ES2015+ in all .js files 
es5-shim    4.1.14 Shims and polyfills to improve ECMAScript 5 support 
insecure    1.0.4 (For prototyping only) Allow all database writes from the client 
jquery    1.11.4 Manipulate the DOM using CSS selectors 
meteor-base   1.0.1 Packages that every Meteor app needs 
mobile-experience  1.0.1 Packages for a great mobile user experience 
mongo     1.1.3 Adaptor for using MongoDB and Minimongo over DDP 
session    1.1.1 Session variable 
standard-minifiers 1.0.2 Standard minifiers used with Meteor apps by default. 
tracker    1.0.9 Dependency tracker to allow reactive callbacks 

и метеорит 1,2. 1

+0

Спасибо за помощь.Я копирую/вставляю это прямо в мое облачное пространство 9, и оно не работает. Ошибок также нет. Можете ли вы попытаться создать его и посмотреть, работает ли он на вас? Или я мог бы предоставить вам доступ к моей? – MontyTheMack

+0

, который непосредственно скопирован из рабочей версии моей системы –

+0

Хорошо, что-то должно быть не так с облачной конфигурацией 9, а затем – MontyTheMack

1

изменения

Template.body.helpers({ 
    task: function() { 
    return Tasks.find({}); 
    } 
}); 

в

Template.body.helpers({ 
    tasks: function() { 
    return Tasks.find({}); 
    } 
}); 

Просто сделайте «задачу» в файле js множественного числа, поэтому он возвращает массив, с которым может работать каждый оператор.

+0

Привет! Я пробовал это, но и не работал. Любые другие идеи? – MontyTheMack

+0

Можете ли вы объяснить, как это не сработало? Вы получили определенную ошибку в консоли? – terrafirma9

+0

Ошибок нет. Вы можете запустить его здесь https://ide.c9.io/hilldesigns/meteor, набрав 'meteorportport $ IP: $ PORT' в терминале @ terrafirma9 – MontyTheMack

0

У вас есть что-нибудь в базе данных о монго?

Попробуйте добавить задание в базу данных и посмотреть, обновляется ли страница.

использование:

meteor mongo 

db.tasks.insert({ text: "Hello world!", createdAt: new Date() }); 
+0

Какая база данных? Метеор или местный? У меня есть документы в обоих, и я до сих пор ничего не вижу. – MontyTheMack

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