Я хочу сохранить json-документ для хранения некоторых простых данных, и я хочу потребовать этот документ и использовать json-объект в вызове define()
, чтобы я мог его использовать. Это не асинхронный вызов. Я имею в виду, что это должно быть для разработки, но я хочу скомпилировать файл на сборке в отличие от фактического асинхронного вызова от API, где контент является динамическим.requirejs load static JSON file
ответ
Самый простой способ сделать это - использовать плагин requirejs json для этого, это позволит вам также включить ваш файл в сборку.
https://github.com/millermedeiros/requirejs-plugins
Вот пример:
require(['json!someFile.json'], function(data){
...
})
// It does not actually need to be a .json extension, this will work to:
require(['json!someFile'], function(data){
...
})
Если вы хотите включить файл в вашем r.js построить так, чтобы она всегда оптимизируется в основные/JS файл начальной загрузки, вы должны добавить его к опции включения
Вы также можете использовать текстовый плагин js для этого, он обычно используется для загрузки файлов шаблонов, но вы можете использовать его для загрузки файлов .json.
https://github.com/requirejs/text
Вам придется разобрать содержимое вашей собственной личности, то с JSON.parse
(Включить json2.js, чтобы обеспечить поддержку старых браузеров, если это требуется)
Вы также можете обернуть в JSON в своем собственном определить(), поэтому вы можете просто потребовать его традиционно, но это не сработает, если вы ограничены фактическим файлом .json
.
Другой вариант - потребовать, чтобы текстовый файл зависел от ajax your self, с jquery или чем-то еще.
$.get('somefile.json', function(data) {
// do something with your data
});
Я пошел с 'requirejs-plugins', и у меня есть плагин' json', который я полностью игнорировал. Однако он использует «текст» как зависимость. Так что спасибо! Я только начал работать с requirejs сегодня в браузере, и это потрясающе. Я все еще надеюсь, что когда я его построю, он перестанет использовать ajax для извлечения документа. – ThomasReggi
@ThomasReggi проверить мой адаптированный ответ для получения информации об этом –
У меня возникли проблемы с использованием текста! для контента JSON в сочетании с r.js для оптимизации. Просто голова. – SimplGy
Проводка ли это ответ, потому что:
- это то, что пользователь задает вопрос на самом деле используется в качестве решения
- это уборщик, чтобы смотреть на, чем требуется текст, так как он всегда делает JSON.parse() для вас.
RequireJS has a JSON plugin. Синтаксис прост:
require(['json!someData.json'], function(data){
...
})
для тех, кто находит это неясным, ["json!/Some/ajax/endpoint"] тоже отлично работает – penguat
Можно ли загрузить локальный файл? – Erik
@erik Обычно я использую веб-сервер (через gulp) для локального развития, поэтому всегда загружайте URL http: // или https: //. Я бы порекомендовал вам сделать то же самое. Если вы спрашиваете о файлах: // URL, я не знаю. – mikemaccana
- 1. python load static library
- 2. django static and requirejs
- 3. bottle.py render static file
- 4. requirejs load script progress
- 5. RequireJS load Библиотека калитки
- 6. load requirejs через javascript
- 7. Django Static wont Load
- 8. php simplexml load file
- 9. requirejs reload javascript file
- 10. RequireJS с Config File
- 11. Static variable file scope
- 12. Static File Dir django
- 13. static html file
- 14. Encript and load file
- 15. django static file not loading
- 16. Модуль Load Requirejs с относительным путем
- 17. JQuery .load JSP File
- 18. javafx load sokoban file
- 19. LOAD FILE MySQL & PHP
- 20. wpdb 'load data file'
- 21. jQuery load txt file
- 22. Jquery load Php file
- 23. SWFObject/load smil file
- 24. nodejs load file
- 25. vim autocommand on load load/file open?
- 26. magento static block insert php file
- 27. java static file loading и design pattern
- 28. angular-translate static-loader-file PascalPrecht
- 29. {% load static%} и {% load staticfiles%}: что является предпочтительным?
- 30. PHP CI load .html file
Именно ваш вопрос тогда? потому что я не вижу никаких проблем с этим. –
@ WillemD'haeseleer Ну, я не уверен, как я должен это делать. Я не могу включить файл '.json' в пути. – ThomasReggi