#angular #ionic-framework
#angular #ionic-framework
Вопрос:
Я пытаюсь импортировать или прочитать в локальном файле последнюю версию Ionic 4, Angular 7. Я пробовал как импортировать, так и использовать http.get (ionic-native), но безуспешно
Для http.get я попробовал следующее (http.get работает при получении файлов с сервера):
this.http.get('assets/createdb1', {}, {}).then((response) => {
console.log(response.status);
console.log(JSON.stringify(response.data)); });
Когда я запускаю его, я получаю следующую ошибку:
Произошла ошибка с запросом: java.net.MalformedURLException: нет протокола: активы/createdb1
На http.get я попробовал file://assets/createdb1 и получил аналогичную ошибку.
Я также попытался импортировать его в свой файл list.page.ts
import createdbsql from 'assets/createdb1';
и полученный
ошибка TS2307: не удается найти модуль ‘assets/createdb1’
Я попробовал ‘../assets/createdb1’ и ‘../ ../assets / createdb1’ и получил ту же ошибку.
Есть идеи о правильном способе импорта файла?
Комментарии:
1. Какие данные / файл вы хотите импортировать? Я спрашиваю об этом, потому что в зависимости от данных вы можете использовать файл json или model.ts.
2. В моем приложении Ionic 3 это были инструкции sql, однако я преобразовал их в массив JSON (инструкций SQL). Следующим шагом будет использование SQLitePorter для создания базы данных.
3. Для импорта данных из локального json используйте import * в качестве данных из ‘./example.json’; Но также вам нужно создать файл определения и написать в нем:объявить модуль «*.json» { постоянное значение: любое; экспортировать значение по умолчанию; } подробнее об этом по ссылке hackernoon.com/import-json-into-typescript-8d465beded79
4. Богнар, спасибо, работаю по ссылке, которую, как я обнаружил, мне нужно было добавить в tsconfig.json CompilerOptions ` «resolveJsonModule»: true `, ` «esModuleInterop»: true` и инструкцию import
import createdbsql from '../../assets/createdb.json';
5. просто чтобы было понятнее, добавьте в tsconfig.json
compilerOptions { "resolveJsonModule":true, "esModuleInterop" :true
}