2016-04-19 21 views
0

Ich bin AngularJS highcharts (https://github.com/pablojim/highcharts-ng)AngularJS Einweg-Bindung auf benutzerdefinierten Richtlinie

Ich habe diese Config und ich muss sicherstellen, dass es nur einmal binded verwendet. Ich habe auf AngularJS eine Einwegbindung gesucht und es heißt, dass ich :: verwenden muss, wenn ich AngularJs 1.3 (was ich bin) benutze. Aber ich bin mir nicht sicher, wie ich es für eine benutzerdefinierte Anweisung verwenden soll.

<highchart config="configtemp"></highchart> 

habe ich versucht, so etwas wie, aber es nicht

<highchart config=":: configtemp"></highchart> 
+0

Könnten Sie weiter erklären, was genau "es funktioniert nicht" bedeutet. Wie in meinem Kommentar unten, wird die Verwendung von '::' tatsächlich verhindern, dass sich der Wert des Attributs 'config' ändert. Wenn also die highchart-Direktive neue Konfigurationsdaten sammelt, liegt das nicht an diesem Bereichswert. – Dan

Antwort

2

In dieser Hinsicht benutzerdefinierte Richtlinien die gleiche wie Winkel Richtlinien arbeiten funktioniert. AngularJS highcharts hat ein Isolat Umfang gemäß:

scope: { 
    config: '=', 
    disableDataWatch: '=' 
    }, 

So ist es Rahmen der Werte für diese Attribute in den HTML-Code zugewiesen bestehen. So

<highchart config=":: configtemp"></highchart> 

bedeutet, dass über die Richtlinie Umfang scope.config gleich ::configtemp sein wird. Da Sie die '::' haben, ändert sich der Wert configtemp nicht (besser bekannt als einmalige Bindung) von seinem ersten Wert, wie Sie vorgeschlagen/erwartet haben. (Example of this in plunker form).

Highcharts hat einige zusätzliche Logik, aber letztlich ist es interne Konfiguration is derived from this attribute/scope value.

Ohne weitere Informationen kann ich nicht raten, was "nicht funktioniert".

+0

Ich möchte eine Konfiguration für mehrere Diagramme verwenden, würde es funktionieren? – VP1456

+0

http://jsfiddle.net/u40vs8hk/ - Ja, obwohl die Diagrammdaten von der 'series' Eigenschaft auf der Konfiguration kommen, also wenn Sie dies nicht dynamisch einstellen können (wegen einmaliger Bindung) würden Sie landen mit dem gleichen Diagramm zweimal. Ich hoffe, das hilft. – Dan

+0

Ich bin am Ende mit dem gleichen Diagramm .. ich denke nicht, dass es funktionieren würde, aber danke für Hilfe tho – VP1456