2016-07-11 5 views
0

Нужна помощь в фрагменте ниже. Цель: Как хранить массив в data.nick и показывать его в рулях (каждый отдельно)?Хранение массивов в данных и их отображение в руле

JS:

function(data, callback){ 
      var URL = 'url'; 
      request(URL, function(err, response, body) { 
       if(response.statusCode == 200){ 
       var json = JSON.parse(body); 
        for(var i = 0; i < json['nick'].length; i++){ 
         var s = []; 
         s = json['nick'][i].id; 
        } 
        data.nick = s; 
        console.log(data.nick); 
        callback(null,data); 
       } 
      }); 
     }, 

Выпуск:data.nick хранит только последний объект опрашивается в то время как s является массивом.


Edit:

массив фиксированной, вопрос в том, как показать каждый из элементов в HTML с использованием экспресс-рули

Я пытался использовать {{#each info.nick}}, {{#list info.nick}}, {{info.nick.[0]}} и т. д., но он не работает.

У меня есть массив [ 432, 3, 104, 222, 30, 11, 62, 421, 17, 412 ], и я бы показал каждое из них с помощью ручек express-handle.

+0

's = json ['nick'] [i] .id' перезаписывает пустой массив только с значением элемента' id'. Даже если бы вы не перезапускали массив, чтобы быть пустым на каждой итерации, так будет отображаться только последний элемент. –

+0

Хмм я назвал console.log (s); и он показывает мне 10 объектов, которые я хочу. – BaSic

+0

так почему, у задайте этот вопрос? –

ответ

0

Вы сбросу массив s быть пустым на каждом цикле. Наряду с этим вы не добавляете элемент в массив, скорее вы переписываете массив с единственным значением json['nick'][i].id. Вот почему вы видите только последний предмет, потому что все остальные потеряли. Вы хотите, чтобы определить вас массив перед для петли и использовать .push() для добавления элемента к нему:

... 
var s = []; 
for(var i = 0; i < json['nick'].length; i++){ 
    s.push(json['nick'][i].id); 
} 
data.nick = s; 
... 

Обратите внимание, что data.nick = s является неполной копией.

+0

Работал также. Любые идеи, как показать каждый элемент в data.nick с помощью рулей? {{#each info.nick}} {{each}} не работает – BaSic

0

Использование Array.map для ге только id атрибут :

function(data, callback){ 
      var URL = 'url'; 
      request(URL, function(err, response, body) { 
       if(response.statusCode == 200){ 
        var json = JSON.parse(body); 
        data.nick = json['nick'].map(function(e,i){return e.id}); 
        console.log(data.nick); 
        callback(null,data); 
       } 
      }); 
     }, 
+0

Спасибо, он работает, но вторая проблема заключается в том, как показать каждый из ID в рулях. информация: данные, и я пытаюсь {{info.nick}} и {{#each info.nick}}, но он не работает. – BaSic

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