2015-12-21 2 views
0

У меня есть следующий фрагмент кода ...Отправить массив для работы в рулях?

var mainArray = 
{ 
    nestedArrays: 
    { 
     array1:[... items ...], 
     array2:[... items ...] 
    } 
}; 

var source = 
    '{{#nestedArrays}}' + 
     '{{#each this}}' + 
      '<div class="listItem" onclick="populateSecondMenu({{SEND THIS ARRAY!}});">' + 
       '<div class="leftSide">' + 
        '<div class="listTitle">Indicator : {{this.length}} </div>' + 
       '</div>' + 
      '</div>' + 
     '{{/each}}' +   
     '{{/items}}'; 

var template = Handlebars.compile(source); 

$('.list').html(template(mainArray)); 

Как вы уже можете видеть здесь, я могу перебрать эту структуру, и поместите длину обоих «array1» и «массив2» внутри списка элементов в пользовательском интерфейсе.

Однако то, что я также хочу сделать, - это передать текущий элемент функции, находящейся внутри тегов «#each» - увидеть этот вызов функции «populateSecondMenu»? Я хочу поставить массив, на котором я сейчас, - так что я могу передать это, как я могу это сделать?

Заранее благодарен!

+0

вы должны иметь волокнистый способ найти позже, что данные, вы не можете передавать массивы вокруг в HTML. индексы и обнюхивание для курящего оружия. – dandavis

+0

Извините - Что значит? – MickeyThreeSheds

+0

Я имею в виду, что вывод является укусом, поэтому вы не можете иметь никаких ссылок на объекты. вам нужны строковые атрибуты, которые помогут вам вернуться к данным позже. – dandavis

ответ

0

попробуйте это. Я использовал arguments

<script type="text/javascript"> 
function populateSecondMenu(item) { 

console.log(arguments); 
} 
</script> 

<div class="entry"> 
    <h1></h1> 
    <div class="body"> 
    {{#nestedArrays}} 
     {{#each this}} 
      <div class="listItem" onclick="populateSecondMenu({{this}})"> 
       <div class="leftSide"> 
        <div class="listTitle">Indicator : {{this.length}} </div> 
       </div> 
      </div> 
     {{/each}}   
     {{/nestedArrays}} 
    </div> 
</div> 
+0

Спасибо! Это хорошо работает – MickeyThreeSheds

+0

Спасибо, что приняли мой ответ :). – vistajess

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