Как визуализировать партиалы при загрузке страницы в файле Haml в Rails - PullRequest
0 голосов
/ 17 октября 2019

Как отобразить частичное из тега JavaScript в файле Haml?

Я хочу, чтобы кнопка «Сохранить» отображалась после завершения загрузки страницы.

В данный момент,файл (частичный) выглядит следующим образом:

.form-group.form-actions
  .col-sm-offset-2.col-sm-10
    %button.btn.btn-primary{type: "submit", name: "save"
      %i.icon-white.icon-ok
      = t("Save")

Я переместил раздел %button.btn.btn-primary в другой частичный файл, _save_button.html.haml и попытался сделать следующее:

.form-group.form-actions
  .col-sm-offset-2.col-sm-10
    :javascript
      $(document).ready( function() {
        $.ajax({
          type: "GET",
          url: "<%= render partial: 'save_button' %>" ,
          success: function(data){
            //if ever there is something more to do (there is also an error handler)
          }
        });
      });

Это не имеетВлияет, однако, кнопка Сохранить не появилась.

Как я могу загрузить частичное при загрузке?

Ответы [ 2 ]

0 голосов
/ 18 октября 2019

Вы можете визуализировать частичку Haml внутри кода JavaScript, но вам нужно экранировать HTML, чтобы браузер не считал его кодом:

someHtml = "#{ j render(partial: 'your_partial') }";

j - это сокращение для escape_javascript.

Вы хотите #{ ... } вместо <%= ... %> для Haml.

0 голосов
/ 17 октября 2019

Для начала, похоже, что вы используете синтаксис ERB в своем URL. Открытие <%= не является синтаксисом HAML.

Что касается рендеринга партиала в методе JavaScript, я не думаю, что Ajax - это то, что вам нужно. Вы уже используете $(document).ready, поэтому все, что вы выполняете там, должно произойти после загрузки документа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...