2017-08-11 5 views
1

私はそれを見つけようとしましたが、正しい答えを得られませんでした。 私はビューのためにMongoose、node.js、EJSを使用しています。EJS&Mongoose:スキーマモデル配列から単一のカテゴリをキャプチャ&表示する方法は?

私は&をキャッチして、客室モデルのすべてのスキーマカテゴリを表示することができました。配列 "夜間"内のカテゴリを除きます。ここで

はここでシードモデル

const rooms = [ 
 
    { 
 
    category: "Estándar", 
 
    type: "Doble", 
 
    view: "Interior", 
 
    capacity: 2, 
 
    size: 20, 
 
    typeOfBed: "Dos camas individuales", 
 
    description: "Encantadora habitación decorada con detalles rústicos", 
 
    price: 100, 
 
    photo: "http://maxpixel.freegreatpicture.com/static/photo/2x/New-Hotel-Guest-Room-1330846.jpg", 
 
    nights: [ 
 
     { date: new Date('2017-09-12'), booked: true }, 
 
     { date: new Date('2017-09-13'), booked: false } 
 
    ] 
 
    },

の一例であり、私はEJS

<table class="table table-hover table-responsive"> 
 
     <thead> 
 
      <tr> 
 
      <th>Imagen</th> 
 
      <th>Tipo </th> 
 
      <th>Categoría</th> 
 
      <th>Vista</th> 
 
      <th>Máximo de personas</th> 
 
      <th>Tamaño en m2</th> 
 
      <th>Tipo de cama</th> 
 
      <th>Precio</th> 
 
      <th>Descripción</th> 
 
      <th> Noches </th> 
 
      <th> Reservado </th> 
 
      <th> Fecha de llegada </th> 
 
      </tr> 
 
    </thead> 
 
    <% rooms.forEach((roomData) => { %> 
 
     <tbody> 
 
      <tr> 
 
      <td scope="row"><img class="roomPic" src="<%= roomData.photo %>" alt="roompicture"></td> 
 
      <td><%= roomData.type %> </td> 
 
      <td><%= roomData.category %></td> 
 
      <td><%= roomData.view %> </td> 
 
      <td><%= roomData.capacity %></td> 
 
      <td><%= roomData.size %></td> 
 
      <td><%= roomData.typeOfBed %></td> 
 
      <td><%= roomData.price %></td> 
 
      <td><%= roomData.description %></td> 
 
      <td><%= roomData.nights %> </td> 
 
      <td><%= roomData.nights.booked %> </td> 
 
      <td><%= roomData.date %> </td> 
 
      <td> 
 
       <a href="/rooms/<%= roomData._id %>/edit"> 
 
        <button class="btn btn-primary"> Editar </button> 
 
       </a> 
 
      </td> 
 
      <th> 
 
       <form action="/rooms/<%= roomData._id %>/delete" method="POST"> 
 
        <button class="btn btn-danger" type="submit"> Borrar </button> 
 
       </form> 
 
      </th> 
 
      </tr> 
 
     </tbody> 
 
      <% }); %> 
 
    </table>

そして目でそれをキャッチする方法ですあなたが見ることができるように電子の結果は、これ一つであり、私が個別に&「日付」「予約」夜の配列の値を表示することができますどのように

ScreenShot of the rendering

¿「予約」「日付」&を示していません?

あなたのHelPに感謝します!あなたは私が考えることができる。この<%= roomData.nights.booked %> 一つの解決策のように照会することはできません

答えて

1

が予約した予約や非リストを事前に計算し、それらのリストを使用します。以下のようなもの。

前のリストを計算する:

<% 
var bookedRooms = []; 
var nonBookedRooms = []; 

rooms.nights.forEach(function(entry){ 
    if(entry.booked == true){ 
    bookedRooms.push(entry); 
    }else{ 
    nonBookedRooms.push(entry); 
    } 
}); 
%> 

はあなたの列に

<td><%= bookedRooms %> </td> 
+0

をリストを使用はあなたに非常に多くの男性に感謝し、私はそれをしようとします! –

関連する問題