2016-07-09 2 views
0

Использование Ember, я пытаюсь передать массив из шаблонаПередача массива из шаблона к вспомогательной функции

{{segment-array images 5}} 

к вспомогательной функции

export function segmentArray([array, itemsPerRow]) { 

    /* Logic to create and a return multidimensional array */ 

} 

Я знаю images это время правильно заполнен, так как я могу использовать помощник {{#each}}. Однако array передается как "<(subclass of Ember.ArrayProxy):ember355>" без какой-либо длины или содержимого.

Как передать, изменить и вернуть массив?

ответ

0

ArrayProxyимеетlength и content, просто не использовать точечную нотацию, но угольки .get():

Ember.get(array, 'length'); 

Но если вы хотите, чтобы просто цикл можно использовать .forEach:

array.forEach((item, index) => { 
    ... 
}); 

также вы можете использовать петлю for of:

for (let item of array){ 
    ... 
} 
+0

Благодарим вас за ответ. Я просто попытался использовать get, однако длина возвращает 0, а содержимое возвращает null. Я полностью и полностью потеряю, как это возможно. –

+0

Hm, тогда ваш массив не заселен. Как вы его получите? Возможно, это асинхронные отношения или что-то в этом роде? PromiseArray? Проверьте, определено ли '.then()'. – Lux

+0

Aha! .then() действительно определено! Разве это так, как это работает в Ember, или есть лучший способ работать с массивами? –

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