2015-12-09 2 views
0

Я пытаюсь передать данные в мою часть, которая имеет цикл for. Кажется, сама петля ломает:Для цикла, не отображающего содержимое в частичном

<!-- Current Tweet Partials --> 
<script id="active-tweet-partial" type="underscore/template"> 
    <section class="tweetFlexItem"> 

    <% console.log(sqTweetData.text); %> 

    <% for (var i = 0; i < sqTweetData.length; i++) { %> 
     <div class="activeTweet"> 
      <div class="activeTweet__wrapper"> 
       <div class="activeTweet__message"><%= sqTweetData[ i ].text %></div> 
      </div> 
     </div> 
    <% } %> 

    </section> 
</script> 

В console.log работ и дает мне текст, я ищу, однако цикл не работает. Если я поставлю предупреждение(); внутри цикла for он не запускается.

Любые мысли?

EDIT: В том числе Javascript

вар Главная = (функция() {

var twitterData = { 
    user: [{ 
     profile_image_url : "assets/avatar.png", 
     name : "@johnsnow" 
    }], 
    text : "Someone once said that I know nothing..." 
}; 

// Partials 
var tweetPartial = $('#active-tweet-partial').html(); 
    tweetPartialCompiled = _.template(tweetPartial); 

// DOM Handlers 
function getTweetData() { 
    return twitterData; 
} 

sqTweetData = getTweetData(); 

// KICKSTART VIEW 
function initHome() { 

    // load main content 
    $('#main-content').html(tweetPartialCompiled(sqTweetData)); 

} 
return { 
    init: initHome 
}; 

})(); 
+2

Не знаю, что структура sqTweetData есть, но она выглядит в вашем console.log вы предполагая, что он является объектом и в цикле, вы предполагая, что он является массивом. Если кто-то работает, я бы предположил, что другой нет. Если это не объект, который выглядит так: {text: '', 1: '', 2: '', 3: '' и т. Д.} – peinearydevelopment

+0

@peinearydevelopment обновлен с помощью javascript – u111937

+0

Я не знаю, что вы пытаетесь отобразить в вашем цикле for. sqTweetData - это объект. Вы пытаетесь зациклиться на пользователях и отображать часть их информации? У пользователя нет текстового свойства, хотя ваш вопрос очень запутан. – peinearydevelopment

ответ

0

Кажется, что мой цикл пытается перебрать массив, когда мне нужно Переберите объект . Я Исправлена ​​проблема, изменив цикл и в том числе .hasOwnProperty

<% for (var i in sqTweetData) { %> 
     <% if (sqTweetData.hasOwnProperty(i)) { %> 
      <div class="activeTweet"> 
       <div class="activeTweet__avatar"><img src="<%= sqTweetData.user.profile_image_url %>"></div> 
       <div class="activeTweet__wrapper"> 
        <div class="activeTweet__name"><%= sqTweetData.user.name %></div> 
        <div class="activeTweet__message"><%= sqTweetData.text %></div> 
       </div> 
      </div> 
     <% } %> 
    <% } %> 

этот другой пост помог решить эту проблему:

Iterate through object properties

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