2015-12-10 74 views
0

我一直在努力嘗試渲染一個快速的應用程序,我已經運行的數組,但我沒有得到任何錯誤,但沒有顯示。把手js沒有渲染陣列

這裏是我的車把模板:

<h3>Registered Users:</h3> 
<h5>{{users}}</h5> 
<ul class="list-group"> 
    {{#each users}} 
    <li class="list-group-item"> 
     {{this.fields.username}} 
    </li> 

    {{/each}} 
</ul> 

這是我返回用戶明示代碼。

/* GET users listing. */ 
router.get('/', function(req, res, next) { 
    api.getUsers(function(response, body){ 
    console.log(body); 
    res.render('users/list', { 'users': body }); 
    }); 
}); 

起初我還以爲用戶陣列沒有得到通過從快車正確傳遞,但在模板中,你可以看到,我只是顯示的用戶,並且對象顯示的是什麼,我認爲這將是。

但是,用戶列表並未呈現,即使數組中至少有一個元素。有任何想法嗎?我敢肯定,這小東西我錯過..

+1

不知道它的確與衆不同,但我認爲你不需要'this.fields.username'中的'this'。 –

回答

2

我將不得不@Joe Attardi同意,您的模板應該看起來更像是這樣的:如果

<h3>Registered Users:</h3> 
<h5>{{users}}</h5> 
<ul class="list-group"> 
    {{#each users as |user|}} <!-- get each user as user from users --> 
    <li class="list-group-item"> 
     {{user.username}} 
    </li> 
    {{/each}} 
</ul> 
+0

謝謝!我嘗試了這一點,但即使我只是在區塊內{{user}}查看是否會顯示任何內容,但沒有任何內容。是否有可能我擁有的對象不被解釋爲數組或其他東西? – phouse512

+0

如果這不起作用,我最好的猜測是你的api.getUsers函數沒有返回你的數據。排除法。首先刪除對api.getUsers()的調用,只需創建一個用戶存根對象,將其渲染並查看handlebars是否顯示任何內容。 var testUsers = [{username:'jsmith'},{用戶名:'janesmith'}] router.get('/',function(req,res,next){ res.render('users/list', {users:testUsers}); – AfDev