My current project includes a component called EventListComponent
import { Component } from 'angular2/core';
@Component ({
selector: 'el-events',
templateUrl: 'app/events/event-list.component.html'
})
export class EventListComponent {
pageTitle: string = 'Events List';
}
The EventListComponent component should be displayed in the AppComponent
import { Component } from 'angular2/core';
import { EventListComponent } from './events/event-list.component';
@Component({
selector: 'events-app',
template: `
<div>
<h1>{{pageTitle}}</h1>
<el-events></el-events>
</div>`,
directives: [ EventListComponent ]
})
export class AppComponent {
pageTitle: string = 'Local Events App';
}
IDE confirms that the directives, selectors, import/export, and decorators are set up correctly. Although, I am using an older version of Angular 2 that requires directives as per course requirements.
Upon testing, I discovered that the page is not rendering the components as expected. The errors displayed are as follows: https://i.sstatic.net/hERJv.png
The project tree structure is illustrated in the following image: https://i.sstatic.net/Rx1zT.png
Upon further investigation, I found that the error occurs when I add the directives section, which could possibly be the root cause of the issue. The Angular version being used is:
"dependencies": {
"angular2": "2.0.0-beta.15"
}
Update Index.html
<!DOCTYPE html>
<html>
<head>
<title>Local Events App</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="node_modules/bootstrap/dist/css/bootstrap.css" rel="stylesheet" />
<link href="app/app.component.css" rel="stylesheet" />
<!-- 1. Load libraries -->
<!-- IE required polyfills, in this exact order -->
<script src="node_modules/angular2/es6/dev/src/testing/shims_for_IE.js"></script>
<script src="node_modules/es6-shim/es6-shim.min.js"></script>
<script src="node_modules/systemjs/dist/system-polyfills.js"></script>
<script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="node_modules/rxjs/bundles/Rx.js"></script>
<script src="node_modules/angular2/bundles/angular2.dev.js"></script>
<!-- 2. Configure SystemJS -->
<script>
System.config({
packages: {
app: {
format: 'register',
defaultExtension: 'js'
}
}
});
System.import('app/main')
.then(null, console.error.bind(console));
</script>
</head>
<body>
<events-app>
Loading App...
</events-app>
</body>
</html>
event-list.component.html
<div class 'panel panel-primary'>
<div class='panel-heading'>
{{pageTitle}}
</div>
<div class='panel-body'>
<div class='row'>
<div class='col-md-2'></div>
<div class='col-md-4'>
<input type="text" />
</div>
</div>
<div class='row'>
<div class='col-md-6'>
<h3>Search by: </h3>
</div>
</div>
</div>
<div class='table-responsive'>
<table class='table'>
<thead>
<tr>
<th>
<button class='btn btn-primary'>
Show image
</button>
</th>
<th>Event</th>
<th>Code</th>
<th>Date</th>
<th>Fee</th>
<th>Rating</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>