Olá pessoal e instrutores..
Estou com um problema e acredito que o mesmo está relacionado ao escopo dos Componentes no Angular 2.
Primeiramente, gostaria de comentar sobre a divisão do projeto. Ele está dividido em cinco componentes, o App, Menu-left, Menu-header, Content e Footer-Component.
Index:
<html>
<head>
<meta charset="utf-8">
<title>Frontend</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body class="nav-md">
<div class="container body">
<div class="main_container">
<app-root></app-root>
</div>
</div>
</body>
</html>
O <app-root></app-root>
é o principal e é composto pelos módulos:
app.component.ts:
<menu-left></menu-left>
<menu-header></menu-header>
<content></content>
<footer-component></footer-component>
Dentro de cada um há um conteúdo HTML que será apresentado ao usuário, com o o menu no topo (menu-header), um menu na esquerda (menu-left), etc...
O problema que estou tendo é em relação ao carregamento do Javascript na apresentação desses dados, ou seja, os Javascripts funcionam para o Menu-Header
, no qual é apresentado um menu drop-down
com os efeitos 100%. Porém, o mesmo não ocorre para o Menu-Left
, em que também há um menu drop-down
.
O que eu testei foi o seguinte: juntei todos os HTMLs (do menu-left, menu-header, content, footer) e os inseri diretamente na página principal (index.html
) e o mais frustrante foi que funcionou tudo, com 100% dos efeitos carregados dos Javascripts que importei.
Vale ressaltar que estou usando o Angular-CLI e estou importando os Styles e Javascripts da seguinte maneira:
angular-cli.json:
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"project": {
"name": "frontend"
},
"apps": [
{
"root": "src",
"outDir": "../../../target/frontend",
"assets": [
"assets",
"favicon.ico"
],
"index": "index.html",
"main": "main.ts",
"polyfills": "polyfills.ts",
"test": "test.ts",
"tsconfig": "tsconfig.app.json",
"testTsconfig": "tsconfig.spec.json",
"prefix": "app",
"styles": [
"../node_modules/gentelella/vendors/bootstrap/dist/css/bootstrap.min.css",
"../node_modules/gentelella/vendors/font-awesome/css/font-awesome.min.css",
"../node_modules/gentelella/vendors/iCheck/skins/flat/green.css",
"../node_modules/gentelella/vendors/bootstrap-progressbar/css/bootstrap-progressbar-3.3.4.min.css",
"../node_modules/gentelella/production/css/maps/jquery-jvectormap-2.0.3.css",
"../node_modules/gentelella/production/less/custom.css"
],
"scripts": [
"../node_modules/gentelella/vendors/jquery/dist/jquery.min.js",
"../node_modules/gentelella/vendors/bootstrap/dist/js/bootstrap.min.js",
"../node_modules/gentelella/build/js/custom.min.js"
...
],
"environmentSource": "environments/environment.ts",
"environments": {
"dev": "environments/environment.ts",
"prod": "environments/environment.prod.ts"
}
}
],
"e2e": {
"protractor": {
"config": "./protractor.conf.js"
}
},
"lint": [
{
"project": "src/tsconfig.app.json"
},
{
"project": "src/tsconfig.spec.json"
},
{
"project": "e2e/tsconfig.e2e.json"
}
],
"test": {
"karma": {
"config": "./karma.conf.js"
}
},
"defaults": {
"styleExt": "css",
"component": {}
}
}
Gostaria de uma sugestão que possa me ajudar a encontrar esse problema que eu acredito ser de 'escopo', pois foi o que mais me fez sentido.
Valeeu!!