Попытка использовать Leaflet в Angular 6 компонент.В зависимости от того, как связан файл css, карта показывает нормально или испорчена, есть недостающие плитки не в правильном порядке, что означает, что css не принят во внимание.
Мне удалось заставить его работатьс 2 решениями, связывающими CSS с уровнем приложения (глобальным), но не только с компонентом.Вот что я попробовал (в дополнение к чтению нескольких постов о css / leaflet / Angular):
Работал - глобальный уровень:
// styles.css
@import url("assets/lib/leaflet/leaflet.css");
Работал - глобальный уровень:
// index.html
<link rel="stylesheet" href="./assets/lib/leaflet/leaflet.css" type="text/css">
Не работает - глобальный уровень:
// angular.json
"styles": [
"src/styles.css",
"src/assets/lib/leaflet/leaflet.css"
],
Не работает - уровень компонента:
// ...
import * as L from "../assets/lib/leaflet/leaflet.js";
import "../assets/lib/leaflet/leaflet-bing-layer.js";
import { BingHelper } from "../assets/lib/bing/bing-helper.js";
// -> importing the .css file here does not work
@Component({
templateUrl: "./map.component.html",
selector: "app-map",
styleUrls: ["../assets/lib/leaflet/leaflet.css"] // -> does not work
// -> also tried to put the content of the .css in style: "", did not work neither
})
export class MapComponent implements AfterViewInit {
ngAfterViewInit() {
var map = L.map("map", {
attributionControl: false,
zoom: 8,
minZoom: 3,
maxZoom: 15,
center: new L.LatLng(40.737, -73.923)
});
// ...
Не работает : инкапсуляция - уровень компонента: Загрузка внешнего стиля CSS в Angular 2 Component
Загрузка из CDN вместо локальногофайл не меняет проблему.
Примечание. Я использую расширение слоя Bing, но это не влияет на эту проблему.У меня также была та же проблема с использованием листов Mapbox.
Вопрос : есть ли способ связать листовую CSS в компоненте и сделать ее доступной только для компонента, но нена все приложение Angular?
Спасибо!