Я настроил кабель действия, теперь я хотел бы использовать следующую функцию js
$('.scroll-bar').scrollTop(row);
прокрутить чат вниз после отправки сообщения
Поэтому я попытался включить предыдущий код как в app/assets/channels/messages.js
, так и в app/assets/javascripts/room.js
.
Проблема в том, что после того, как я выполню app/assets/channels/messages.js
, в html не будет добавлен новый тег <p></p>
.
App.messages = App.cable.subscriptions.create('MessagesChannel', {
received: function(data) {
$("#messages").removeClass('hidden')
return $('#messages').append(this.renderMessage(data));
},
renderMessage: function(data) {
return "<p> <b>" + data.user + ": </b>" + data.message + "</p>";
}
});
Это мои сообщения в чате, я не могу запустить .scrollTop(row)
в несуществующей строке.
Я проверил, и теги <p>
добавляются после messages.js
.
Я нашел временное решение для решения этой проблемы, комментируя возврат из return $('#messages').append(this.renderMessage(data));
и вызывая после метода .scrollTop(row)
. Решение работает, но таким образом к странице добавляется только html без тегов <p>
. Почему-то renderMessage
работает неправильно.
Я доступен для любой информации
Большое спасибо, Фабрицио Бертольо.