У меня есть приложение Django, в котором есть проблема с дизайном, которую я хотел бы исправить: сценарий хочет ввести кусок HTML, который содержит теги django. < /p>
Что у нас сейчас работает сейчас , но имеет несколько неудачных аспектов: < /p>
Сохраните скрипт как фрагмент HTML, который не является чем -то иным, как сценарием: Первая строка - это и последняя строка закрывает этот скрипт. Этот скрипт устанавливает локальную переменную для бита HTML, как длинную строку, затем находит, где разыскивается бит HTML, и вызывает InserTAdjacenthtml, чтобы вставить его.
< /ul>
Таким образом, фрагмент-это HTML-файл, который не содержит ничего, кроме скрипта, и этот скрипт, в свою очередь, содержит жесткий HTML в качестве строки. Это сбивает с толку читать и не позволяет нашим javaScript и HTML Linters работать над этим фрагментом. Но код работает, и сценарий может использоваться любой страницей, просто импортируя единый фрагмент. < /P>
Есть ли более чистое решение? Мое идеальное решение было бы: < /p>
Хранить бит HTML в файле HTML. < /Li>
Храните скрипт в .js. Файл. < /li>
Разрешить страницы, которые используют скрипт, чтобы просто загрузить скрипт. < /li>
< /ul>
Я попробовал следующее, ни один из которых не работает, и никто которые соответствуют всем этим целям: < /p>
1: Сделайте фрагмент HTML в статический файл JavaScript, сохраняя при этом жесткий HTML внутри. Загрузите это как любой статический скрипт. Он также все еще имеет жесткий HTML в файле JavaScript. Очевидно, что вызовы FS не доступны в нашей среде, и я не уверен, что стоит добавить необходимую дополнительную библиотеку. : < /p>
Переместите бит HTML в новый фрагмент HTML, вставив его в новый скрытый Div с уникальным идентификатором. < /li>
< Ли> иметь Страница, которая загружает сценарий, сначала включает в себя фрагмент HTML, в конце раздела { % блока %} , а также включить его фрагмент скрипта HTML (если бы я мог получить это, я бы попробовал его перенести к статическому файлу JS, но по одному изменению за раз). < /li>
Попросите скрипта использовать модель домена, чтобы получить DIV, содержащий HTML, получите HTML В качестве строки с использованием innerhtml , затем удалите скрытый div (чтобы предотвратить скрытое HTML -бит, не подтянув приложения).
Это Не удается в модульных тестах таким образом, чтобы показать, что новый HTML -бит не удален. Но я скажу, что когда я запускаю приложение локально, оно, кажется, работает, и теги Django обрабатываются правильно. Кроме того, если я удалю "скрытую", я не вижу бита HTML при взаимодействии с сервером. Так что я не совсем уверен, что происходит. Но я думаю, что сломанные тесты показывают, что это решение не совсем правильно. /> рискованно добавить нежелательный HTML на страницу (как показывают сломанные тесты). < /li>
Для любой страницы загружается сценарий, чтобы также импортировать соответствующий HTML фрагмент. и склонны к ошибкам. < /p>
Есть идеи для более чистого решения? Я попробовал много поиска в Интернете, но подозреваю, что не задаю правильному вопросу.
У меня есть приложение Django, в котором есть проблема с дизайном, которую я хотел бы исправить: сценарий хочет ввести кусок HTML, который содержит теги django. < /p> Что у нас сейчас работает сейчас , но имеет несколько неудачных аспектов: < /p> [list] [*] Сохраните скрипт как фрагмент HTML, который не является чем -то иным, как сценарием: Первая строка - это и последняя строка закрывает этот скрипт. Этот скрипт устанавливает локальную переменную для бита HTML, как длинную строку, затем находит, где разыскивается бит HTML, и вызывает InserTAdjacenthtml, чтобы вставить его. < /ul> Таким образом, фрагмент-это HTML-файл, который не содержит ничего, кроме скрипта, и этот скрипт, в свою очередь, содержит жесткий HTML в качестве строки. Это сбивает с толку читать и не позволяет нашим javaScript и HTML Linters работать над этим фрагментом. Но код работает, и сценарий может использоваться любой страницей, просто импортируя единый фрагмент. < /P> Есть ли более чистое решение? Мое идеальное решение было бы: < /p>
[*] Хранить бит HTML в файле HTML. < /Li> Храните скрипт в .js. Файл. < /li> Разрешить страницы, которые используют скрипт, чтобы просто загрузить скрипт. < /li> < /ul> Я попробовал следующее, ни один из которых не работает, и никто которые соответствуют всем этим целям: < /p> 1: Сделайте фрагмент HTML в статический файл JavaScript, сохраняя при этом жесткий HTML внутри. Загрузите это как любой статический скрипт. Он также все еще имеет жесткий HTML в файле JavaScript. Очевидно, что вызовы FS не доступны в нашей среде, и я не уверен, что стоит добавить необходимую дополнительную библиотеку. : < /p>
Переместите бит HTML в новый фрагмент HTML, вставив его в новый скрытый Div с уникальным идентификатором. < /li> < Ли> иметь Страница, которая загружает сценарий, сначала включает в себя фрагмент HTML, в конце раздела { % блока %} , а также включить его фрагмент скрипта HTML (если бы я мог получить это, я бы попробовал его перенести к статическому файлу JS, но по одному изменению за раз). < /li> Попросите скрипта использовать модель домена, чтобы получить DIV, содержащий HTML, получите HTML В качестве строки с использованием innerhtml , затем удалите скрытый div (чтобы предотвратить скрытое HTML -бит, не подтянув приложения). [/list] Это Не удается в модульных тестах таким образом, чтобы показать, что новый HTML -бит не удален. Но я скажу, что когда я запускаю приложение локально, оно, кажется, работает, и теги Django обрабатываются правильно. Кроме того, если я удалю "скрытую", я не вижу бита HTML при взаимодействии с сервером. Так что я не совсем уверен, что происходит. Но я думаю, что сломанные тесты показывают, что это решение не совсем правильно. /> рискованно добавить нежелательный HTML на страницу (как показывают сломанные тесты). < /li> Для любой страницы загружается сценарий, чтобы также импортировать соответствующий HTML фрагмент. и склонны к ошибкам. < /p> Есть идеи для более чистого решения? Я попробовал много поиска в Интернете, но подозреваю, что не задаю правильному вопросу.