2017-05-30 27 views
1

以下代码允许用户选中一个框以在使用MongodB/Node/Express的帖子中包含舒适性。它完美地工作,让用户选择他们的设施,然后将这些选择显示为图标。MongoDB的复选框数据

但是我无法编辑这些职位在我的编辑路线。那就是问题所在。查看底部的代码。我如何更改我的代码以便能够编辑图标?

// 了简化的架构

var rentalsSchema = new mongoose.Schema({ 
     amenities: Array 
    }); 

// 用户检查自己的设施

<input type="checkbox" name="amenities" value="wifi"><span>Wi-fi</span> 
<input type="checkbox" name="amenities" value="tv"><span>TV</span> 

// 代码遍历数组,并显示了使用谷歌的材料图标相关的图标。

<div class="list-group"> 
     <li class="list-group-item active">Amenities</li> 
     <li id="amenitiesBox" class="list-group-item"> 
     <% for(var i=0; i<rentals.amenities.length; i++){ %> 
     <i class="material-icons"><%=rentals.amenities[i]%></i> 
     <% } %> 
     </li> 
     </li> 
     </div> 
     </div> 

// 的问题是在我的编辑路线。简化如下

 <form id='rentalEdit' action="/rentals/<%=rentals._id %>/?_method=PUT" method ="POST"> 

<input Checked type="checkbox" name="rentals[amenities]" value="wifi"><span>Wifi</span> 

     </form> 

回答

0

啊,明白了!

在我router.put我说:

var amenities = req.body.amenities; & amenities: amenities. 

然后,我只是说我的设施,以编辑形式,这种格式。

<input name="amenities" type="checkbox" value="wifi" <%= rentals.amenities.indexOf("wifi") !== -1 ? "checked" : "" %> >wifi