Ich versuche, eine Sammlung von Daten zu einem benutzerdefinierten Elemente Aurelia passieren verwenden, aber mir null bekommen, wenn die Daten in dem benutzerdefinierten Elemente zuzugreifen versuchen. Ich habe einen Kern meiner Frage enthalten: https://gist.run/?id=3c51fff719dc4b482136dadb860618fdAurelia Bindung Rückkehr null auf benutzerdefiniertes Elemente
Antwort
Dies ist wahrscheinlich nur eine halbe Antwort, da es immer noch ein Fehler ist, aber chartExample.js
nach unten zumindest gibt Ihnen ein Diagramm
import {inject, bindable} from 'aurelia-framework';
export class ChartExample{
@bindable info
infoChanged(value){
this.seriesDefaults = this.info.seriesDefaults;
this.series = this.info.series;
this.valueAxis = this.info.valueAxis;
this.categoryAxis = this.info.categoryAxis;
this.tooltip = this.info.tooltip;
}
}
bearbeiten Aktualisierung: ich denke, Ihre JSON war auch nicht gültig, wie es jetzt funktioniert ...
{
"title": "CHART",
"seriesDefaults": {
"type": "area",
"area": {
"line": {
"style": "smooth"
}
}
},
"series": [{
"name": "India",
"data": [3.907, 7.943, 7.848, 9.284, 9.263, 9.801, 3.890, 8.238, 9.552, 6.855]
}, {
"name": "World",
"data": [1.988, 2.733, 3.994, 3.464, 4.001, 3.939, 1.333, -2.245, 4.339, 2.727]
}, {
"name": "Haiti",
"data": [-0.253, 0.362, -3.519, 1.799, 2.252, 3.343, 0.843, 2.877, -5.416, 5.590]
}],
"valueAxis": {
"labels": {
"format": "{0}%"
},
"line": {
"visible": false
},
"axisCrossingValue": -10
},
"categoryAxis": {
"categories": [2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011],
"majorGridLines": {
"visible": false
},
"labels": {
"rotation": "auto"
}
},
"tooltip": {
"visible": true,
"format": "{0}%",
"template": "${series.name} ${value}"
}
}
Try this:
import {inject, bindable} from 'aurelia-framework';
import {HttpClient} from 'aurelia-http-client';
import {Service} from './service';
@inject(HttpClient, Service)
export class App {
//@bindable chart;
constructor(httpClient, service){
this.httpClient = httpClient;
this.service = service;
}
activate() {
return this.service.getAllCharts()
.then(chart => {
this.chart = chart;
});
}
}
ich will nicht die Rückkehr in den activate, weil ich andere Dinge in activate laufen. –
Problem: in app.js
, chart
wird nicht initialisiert, bis service.getAllCharts()
beenden. Zu diesem Zeitpunkt ist das benutzerdefinierte Element bereits angehängt (d. H. Seine bind()
ist bereits ausgeführt).
Logischerweise möchten Sie das benutzerdefinierte Element nur anschließen, nachdem die erforderlichen Daten bereits initialisiert wurden. Sie können app.html
wie unten ändern:
<chart-example if.bind="chart" info.bind="chart"></chart-example>
Auf diese Weise können Sie <chart-example>
Antwort „one-time“ an die Eingangsdaten machen. Eine andere Möglichkeit besteht darin, <chart-example>
selbst die bindbare Eigenschaft info
zu beobachten und entsprechend zu handeln. Auf diese Weise können Sie das benutzerdefinierte Element kontinuierlich auf Eingabedaten reagieren lassen.
Die Lösung war, aber das Diagramm ruft in die bind() {} Funktion auf den chartExample.js
import {inject, bindable} from 'aurelia-framework';
export class ChartExample{
@bindable info
bind(){
this.seriesDefaults = this.info.seriesDefaults;
this.series = this.info.series;
this.valueAxis = this.info.valueAxis;
this.categoryAxis = this.info.categoryAxis;
this.tooltip = this.info.tooltip;
}
}
- 1. Aurelia Bindung für Kind-Elemente
- 2. Aurelia dynamische Bindung
- 3. Aurelia: Bindung an berechnete Werte
- 4. Aurelia Zweiwegbetrieb Bindung nicht richtig
- 5. Aurelia - Zugreifen auf ViewModel-Funktionen/Bindung von generierten DOM-Elementen
- 6. One Time für Interpolationswert in Aurelia Bindung
- 7. Aurelia: Benutzerdefinierte Elemente vs Benutzerdefinierte Attribute
- 8. Aurelia-Bindung: Property-Getter wiederholt aufgerufen
- 9. forceTouchCapability Rückkehr null
- 10. Social.localuser.image immer Rückkehr null
- 11. getResourceAsStream() immer null Rückkehr
- 12. NSJSONSerialization Rückkehr null
- 13. JTabbedPane.getTabComponentAt (int) Rückkehr null
- 14. NSURL Rückkehr null
- 15. Volley Request Rückkehr null
- 16. JSON SelectToken Rückkehr null
- 17. null Rückkehr in Command
- 18. findViewById null Rückkehr nach
- 19. UINavigationController Rückkehr null
- 20. NSDateFormatter dateFromString Rückkehr null
- 21. SecurityContextHolder.getContext() getAuthentication() Rückkehr null
- 22. self.window.rootViewController.presentedViewController Rückkehr null
- 23. Json Decode Rückkehr NULL
- 24. Bindung an beliebige oder nicht standardmäßige Attribute in Aurelia
- 25. ASP.Net MVC Modell Bindung Rückkehr Nullwerte
- 26. Knockout-Bindung auf dynamisch generierte Elemente
- 27. 2-Wege-Databinding in Aurelia benutzerdefinierte Elemente - binden benutzerdefiniertes Element an übergeordnete Viewmodel
- 28. Sollwert in WPF auf null Bindung
- 29. Bindung CalendarDatePicker.Language Eigenschaft Rückkehr Exception.HResult 0x800F0904
- 30. aurelia - computedFrom
während dies löst nicht das Problem, das Sie haben 'seriesDefault' in Ihrem' chartExample .html' und 'seriesDefaults' in Ihrem' chartExample.js' –