Экспорт json в функцию javascript для импорта в другую функцию javascrtipt - PullRequest
0 голосов
/ 21 октября 2018

У меня есть требование прочитать файл 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 Ответ

0 голосов
/ 21 октября 2018

Я думаю, вам нужно либо создать экспорт по умолчанию, либо импортировать маршрут с помощью фигурных скобок.Вариант 1:

export default function route()

Вариант 2:

import {route} from '../router.js';
...