Обновите шаблон EJS с помощью Socket.IO - PullRequest
0 голосов
/ 24 июня 2018

В основном я создаю объект, используя модал с формой, и я отправляю данные с помощью socket.io. Я хочу обновить информацию, отображаемую при добавлении нового элемента после отправки формы, без обновления страницы.

Добавление функции:

  //TODO: Make validations for the cluster using Node-ORM2
  add: function(m, db, socket) {
    db.models.cluster.createAsync({ name : m.name, shop_id : m.shop, display_id : m.display}).then(function(result) {
      socket.emit('message', {
        success : true,
        msg : 'Cluster successfuly added to the database.'
      })
    })
  }

Код EJS:

 <div class="row">
  <% clusters.forEach(function(cluster) { %>
    <div class="col-sm-12 col-md-3">
      <div class="card">
        <div class="card-header bg-light">
          <%= cluster.name %>
        </div>
        <div class="card-body">
          <ul id="cluster" data-name="<%= cluster.id %>" class="list-group">
            <% if(cluster.devices.length == 0) { %>
              <li class="list-group-item ignore">No active devices in this cluster.</li>
              <% } %>  
              <% for(var i = 0; i < cluster.devices.length; i++) { %>
                <li data-id="<%= cluster.devices[i].id %>" class="list-group-item"><%= cluster.devices[i].name %></li>
                <% } %>
              </ul>
            </div>
          </div>
        </div>
        <% }) %>
      </div>
...