Node.js - Вложенный массив в виде Jade - PullRequest
0 голосов
/ 30 сентября 2011

Используя Mongoose, у меня есть страница модели со встроенной моделью каналов.Когда я захожу в / pages, page.title отображается для каждой страницы, но не передает данные.Как я должен изменить этот код, чтобы правильно отображать данные из массива каналов?спасибо миллион

db.pages, например:

{ "title" : "testing feeds", "_id" : ObjectId("123456"), "feeds" : [
{ "0" : { "name" : "twitter", "key" : "1234" },
  "1" : { "name" : "flickr", "key" : "5678" },
}] }

web.js

app.get('/pages.:format?', function(req, res) {
  Page.find({}, function(err, pages) {
    switch (req.params.format) {
      case 'json':
        res.send(pages.map(function(d) {
          return d.toObject();
        }));
      break;

      default:
        res.render('pages/index.jade', {
          locals: { 
              title: 'ClrTouch | Pages',
              pages: pages,
              feeds: pages.feed,
          }
        });
    }
  });
});

view

- each page in pages
  div.page
    div.pagetitle= page.title
      ul
      - each feed in page.feeds
        li.pagefeedname= feed.name
        li.pagefeedkey= feed.key

с тем, что у меня есть,список создается в представлении, но элементы списка пусты.Спасибо.

Ответы [ 2 ]

0 голосов
/ 22 августа 2013

tuddy, Я предлагаю вам попробовать так:

   Page.find().lean().exec(function(err,pages){
   // TODO
  });
0 голосов
/ 30 сентября 2011

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

li.pagefeedname=feed.name = "0": { "имя": "" , "ключ": ""}

Попробуйте присвоить названию / ключам вашего канала некоторые значения и посмотрите, как это закончится.

В противном случае то, что у вас должно работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...