Dank beide, sehr neu auf Eckig. Ja, ich nahm fälschlicherweise an, Angular v2 sei gleichbedeutend mit AngularJS. Danke, dass du mich informiert hast, dass es nicht ist. Es ist Angular v2, die ich benutze.
Hier ist der Code, den ich von einem anderen Entwickler geerbt haben (die Angular innen und außen wusste):
<!-- filter -->
<div class="filter" (click)="clickToFilter_Clicked()"> **<!-- This is where I'm having trouble -->**
...
</div>
<!-- data list -->
<div class="data-list">
<all-data-row *ngFor="let item of categoryRows; let last=last"
relativeWidth="100"
[item]="item.chartData"
[last]="last"
(click)="selectCategory(item.fullObject)" **<!-- This works somehow -->**
[selected]="selected">
</all-data-row>
</div>
Im Typoskript-Datei:
import { Component, ViewEncapsulation, OnInit, OnDestroy, Input } from '@angular/core';
@Component({
selector: 'all-data-page',
templateUrl: './all-data-page.component.html',
styles: [ require('./all-data-page.style.scss') ],
})
export class AllDataPageComponent implements OnInit {
@Input() allData: any;
@Input() type: any;
private criticalityChartData: any[] = [];
private categoryRows: any[] = [];
private selected: any = null;
private colors: any = {
'Safeguards': {
'MEC': '#8f8fc6',
'MEC-P': '#ebb174',
'BPCS': '#2eb9ba',
'BPCS-T': '#5a96d0',
'BPCS-C': '#c0db73',
'SIS-A': '#e5cf2d',
'SIS': '#f69c94',
'Other LS': '#ea7474',
'Other LS-T': '#50c0a4',
'Other LS-C': '#81c341',
'PRO': '#6f6db2',
'ROUND': '#b94a9c',
'PM': '#ca94c2',
'OCC': '#1cac5c',
'OTHER': '#d56853'
}
};
ngOnInit(): void {
this.allData.forEach((category) => {
if (category != null && category.Title === this.type) {
if (!!category.CriticalityPieChart) {
this.criticalityChartData = category.CriticalityPieChart;
category.Items.forEach((item) => {
this.categoryRows.push({
'fullObject': item,
'chartData': {
'ValueColor': item != null ? this.colors[this.type][item.Category] : '',
'Value': item != null ? item.Criticality : '0.0',
'ValueLabel': item != null ? item.Title : ''
}
});
if (this.selected === null) {
this.selected = this.categoryRows[0].fullObject;
}
});
}
}
});
}
**// This function gets called:**
selectCategory(category) {
this.selected = category;
}
closeDetails() {
this.selected = null;
}
**// This function doesn't get called:**
clickToFilter_Clicked() {
alert("Clicked!");
}
}
Ich bin nicht eine Stelle zu sehen in dem Code, in dem Funktionen $ scope zugewiesen werden. Im obigen Typoskript wählen Sie Kategorie (...). Es wird im Winkelcode aufgerufen.Aber clickToFilter_Clicked() funktioniert nicht (wird nicht aufgerufen), obwohl es scheint, dass ich das gleiche mache:
Bitte poste deinen Code. – Phix
Ist das Angular oder AngularJS? Angular (> v2) verwendet die Klammerbindungen, AngularJS nicht. – Phix