ga-wdi-boston / capstone-project

Other
3 stars 29 forks source link

handlebars spitting out 3 individual items 3 times each #856

Closed jingrid closed 6 years ago

jingrid commented 6 years ago

hello

In the process of formatting my data before sending to hbs, the following is my ui file:


let viewfeedDates = []

const renderToHandlebars = function (render) {
  for (let i = 0; i < store.events.length; i++) {
    const eachEvent = {
      title: store.events[i].title,
      points: store.events[i].points,
      createdOn: store.events[i].createdAt,
      updatedOn: store.events[i].updatedAt,
      articles: store.events[i].articles
    }
    viewfeedDates.push(eachEvent)
  }
}

const viewFeedSuccess = (data) => {
  console.log('viewFeedSuccess in ui')
  console.log('data.events is ', data.events)
  store.events = data.events
  store.events.forEach(renderToHandlebars)

  $('.feed').show()
  $('.feed').html('')
  const publicFeedHtml = publicFeedHandlebars({ events: viewfeedDates })
  $('.feed').append(publicFeedHtml)
  viewfeedDates = []

so data.events returns an array of 3 objects, each is an 'event'. However, once that's passed to hbs, my '.feed' renders 9 objects, essentially repeating each event 3 times.

payne-chris-r commented 6 years ago

Did you check for nested eaches like we talked about?

jingrid commented 6 years ago

solved issue by changing store.events.forEach(renderToHandlebars)

to renderToHandlebars(store.events)