Страницы

Поиск по вопросам

Показаны сообщения с ярлыком mustache. Показать все сообщения
Показаны сообщения с ярлыком mustache. Показать все сообщения

вторник, 25 февраля 2020 г.

Как в переменную загрузить данные из файла?

#javascript #html #mustache


Здравствуйте! 
Есть сторонняя библиотека работы с шаблонами  Mustache. При заполнении шаблона, я
использую два входных параметра, это файл шаблона и файл содержащий JSON строку, содержимое
которой подставляется в шаблон.
Первый вопрос: как загрузить эти файлы непосредственно в переменные, для передачи
их в  Mustache функцию, например:
html = Mustache.to_html(template, json);

Второй вопрос: Может можно сразу указывать в качестве входных параметров Mustache
функции, пути к файлам:
html = Mustache.to_html(File_path_to_template, File_path_to_json);
    


Ответы

Ответ 1



function getData( url, ready ) { var xhr = new XMLHttpRequest(); xhr.open( 'GET', url, true ); xhr.onreadystatechange = function() { if( this.readyState === 4 && this.status !== 404 ) { ready( this.responseText ); } } xhr.send(); } getData( 'pathToTemplate', function( templateData ) { getData( 'pathToJSON', function( jsonData ) { console.log( templateData ); console.log( jsonData ); }) }) Асинхронный вариант, по хорошему нужно делать примерно так, а в вашем случае вообще лучше делать запросы "паралельно", здесь я кое-что писал об этом.

Ответ 2



Возможно, вам подойдет такая немудреная функция: loadURL = function(url) { var oRequest = new XMLHttpRequest(); oRequest.open('GET', url, false); oRequest.setRequestHeader("User-Agent", navigator.userAgent); oRequest.send(null); return oRequest.responseText; }; Я ее успешно использую в своем приложении для загрузки данных из текстовых фалов.

Ответ 3



var json; $.get('/data.json', function (data) { json = data; }); alert(json.test); На чистом JS сами пишите.

Ответ 4



Я реши проблему так:

суббота, 6 июля 2019 г.

Spring boot не отдается страница

Начинаю разбираться со спрингом. Не работает самый банальный пример, со статьи на хабре.
IndexController.java
@Controller public class IndexController { @GetMapping("/") public ModelAndView index() { Map model = new HashMap<>(); model.put("name", "Alexey"); return new ModelAndView("index", model); } }
resourses/templates/index.html

Welcome to Spring, {{ name }}


Выдает
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback. Tue Aug 14 15:30:33 MSK 2018 There was an unexpected error (type=Not Found, status=404). No message available
Если использовать @RestController, то всё работает. Есть подозрения на SELinux


Ответ

Надо добавить вью резолвер MustacheViewResolver для того, чтобы можно было использовать шаблоны с расширением .html
@Configuration public class Config implements WebMvcConfigurer {
@Bean public ViewResolver viewResolver() { MustacheViewResolver mustacheViewResolver = new MustacheViewResolver(); mustacheViewResolver.setPrefix("classpath:/templates/"); mustacheViewResolver.setSuffix(".html"); mustacheViewResolver.setCache(false); return mustacheViewResolver; } }

среда, 15 мая 2019 г.

Как в переменную загрузить данные из файла?

Здравствуйте! Есть сторонняя библиотека работы с шаблонами Mustache. При заполнении шаблона, я использую два входных параметра, это файл шаблона и файл содержащий JSON строку, содержимое которой подставляется в шаблон. Первый вопрос: как загрузить эти файлы непосредственно в переменные, для передачи их в Mustache функцию, например: html = Mustache.to_html(template, json); Второй вопрос: Может можно сразу указывать в качестве входных параметров Mustache функции, пути к файлам: html = Mustache.to_html(File_path_to_template, File_path_to_json);


Ответ

function getData( url, ready ) { var xhr = new XMLHttpRequest(); xhr.open( 'GET', url, true ); xhr.onreadystatechange = function() { if( this.readyState === 4 && this.status !== 404 ) { ready( this.responseText ); } } xhr.send(); }
getData( 'pathToTemplate', function( templateData ) { getData( 'pathToJSON', function( jsonData ) { console.log( templateData ); console.log( jsonData ); }) })
Асинхронный вариант, по хорошему нужно делать примерно так, а в вашем случае вообще лучше делать запросы "паралельно", здесь я кое-что писал об этом.