Экспорт json в функцию javascript для импорта в другую функцию javascrtipt
У меня есть требование, чтобы прочитать файл JSON и сделать его доступным через приложение. Мой подход был (извлечен из этого ресурса):
assets / js / rout.json:
{
"task.create": "deliveryorders\/{deliveryOrder}\/tasks\/create",
}
assets / js / router.js:
import * as routes from './routes.json';
export function route() {
var args = Array.prototype.slice.call(arguments);
var name = args.shift();
if (routes[name] === undefined) {
console.error('Unknown route ', name);
} else {
return baseUrl + '/' + routes[name]
.split('/')
.map(s => s[0] == '{' ? args.shift() : s)
.join('/');
}
}
assets / js / base / pltbl.js:
import '../router.js';
window.tblLoadContent = function tblLoadContent(argModel) {
url_ = route(argModel.name + ".index", [argModel.parent_id]);
$("#tbl" + _titleCase(argModel.name) + "_body").load(url_, function(responseTxt, statusTxt, xhr) {
if (statusTxt == "success") {
refreshMenu(argModel);
}
});
}
Он вызывается в app.blade.php:
$(document).ready(function(){
tblLoadContent("{'name':'package', 'parent_id': '1'}");
});
Но когда отображается файл app.blade.php, в консоли появляется сообщение об ошибке:
Uncaught ReferenceError: route is not defined
at tblLoadContent (pltbl.js:141)
at HTMLDocument.<anonymous> (edit:473)
at l (jquery-3.3.1.min.js:2)
at c (jquery-3.3.1.min.js:2)
1 ответ
Решение
Я думаю, что вам нужно или создать экспорт по умолчанию или импортировать маршрут с помощью фигурных скобок. Опция 1:
export default function route()
Вариант 2:
import {route} from '../router.js';