2017-07-07 107 views
1

我正在用KeystoneJS做一個電子商務網站(學習目的)。在顯示所有產品的視圖中,我想添加一個按價格排序項目的過濾器,另一個僅顯示一個品牌的產品。需要兩種形式,但我不明白只提交一個Keystone JS視圖無效的事件

我products.pug看起來像這樣

.container 
    form(method='post') 
    input(type='hidden', name='action', value='products') 
    button(type='submit').btn.btn-primary Send 

和我的路線/視圖products.js /像這樣

[...] 
// Print a word when submit the form 
view.on('post', { action: 'products' }, function(next) { 
    console.log('POST') 
    next() 
}) 
// Get all products from db 
view.on('init'...) 
// Render 
view.render('products') 

所以基本上我想要做的是打印POST當我點擊按鈕的視圖。相反,我收到一個404錯誤頁面。我真的很感激,如果你們能幫助我

+0

我應該補充說,如果我更改表單中的方法和事件中的動詞GET並刪除第二個參數,它將打印該單詞。爲什麼它不適用於方法後? –

+0

這看起來正確。你有沒有嘗試讓你的表單方法'POST'而不是'post'? –

+0

是的,並繼續出錯。我選擇了使用方法GET並將所有內容都放在一個表單中,但我真的很想解決這個問題,因爲正如你所說的那樣,它看起來是正確的 –

回答

0

Got it!在/routes/index.js我更換

app.get('/products', route.views.products); 

app.all('/products', route.views.products); 

我覺得假,但很高興。