Использовать класс, импортированный из модуля в несколько подфайлов - PullRequest
0 голосов
/ 14 декабря 2018

В настоящее время я переписываю свой проект с использованием ecmascript 2015. У меня есть файл module.js, в котором у меня есть два класса.Я хотел бы использовать эти классы в двух файлах (index.php и page.php, которые являются динамически генерируемой страницей, включенной в index.php).

Мой древовидный файл выглядит следующим образом:

 /..
    modules.js // Where I store my classes
    page.php // This also contains a <script> part in which I would like to use my classes
    index.php // Where I import my .js files
    script.js // Where I would also like to use my classes

Я импортировал свои классы в файл index.php следующим образом:

<script type="module" src="js/modules.js">
    import * from "./js/modules.js"
</script>
<script src="script.js"></script>

И мой файл модуля выглядит так:

export { Blabla1 , Blabla2 };

class Blabla1 {
    constructor(......) {
        .....
  }

class Blabla2 {
    constructor(......) {
        .....
  }
}

Проблема в том, что я не могуинициируйте любой класс, который я импортировал в script.js и page.php, и застряли с:

ReferenceError: Blabla1 is not defined

Если у кого-то есть какие-либо предположения по моей проблеме, я был бы очень признателен

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

В идеале это должно работать:

<script type="module">
    import { Blabla1, Blabla2 } from './js/module.js';
    var bla1 = new Blabla1();
</script>`

export { Blabla1 , Blabla2 };

class Blabla1 {
    constructor() {
        console.log('In Blabla1');
  }
} // It's missing

class Blabla2 {
    constructor() {
        console.log('In Blabla2');
  }
}
0 голосов
/ 14 декабря 2018

Если вы хотите экспортировать / импортировать класс из файла one.js в файл another.js, используйте следующий код:

export class Person {
  static logme() {
    console.log('Hi');
  }
}

И затем вызовите его из файла another.js

import Person from './another.js';
console.log(Person.test());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...