2016-04-19 189 views
0

單向綁定我用AngularJS highcharts(https://github.com/pablojim/highcharts-ngAngularJS自定義指令

我有這樣的配置,我需要確保它只能綁定一次。我在AngularJS上查找單向綁定,並說如果我使用AngularJs 1.3(我是),我需要使用::。但我不確定如何在自定義指令中使用它。

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

我想是這樣,但它不工作

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

你能否進一步解釋究竟「它不工作」的含義?根據我下面的評論,使用'::'確實會阻止屬性'config'的值改變,所以如果highchart指令正在收集新的配置數據,那麼它不是來自這個範圍值。 – Dan

回答

2

在這一點上的自定義指令的工作方式相同角度的指令。 AngularJS highcharts有一個分離範圍按:

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

所以它的範圍將包括分配給這些HTML屬性值。因此

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

將意味着在指令範圍scope.config將等於::configtemp。由於您擁有'::',所以configtemp的值不會像您所建議/預期的那樣從第一個值更改(更好地稱爲一次性綁定)。 (Example of this in plunker form)。

Highcharts確實有一些額外的邏輯,但最終它的內部配置is derived from this attribute/scope value

沒有進一步的信息,我不能建議什麼「不工作」。

+0

我想爲多個圖表使用一個配置,它會工作嗎? – VP1456

+0

http://jsfiddle.net/u40vs8hk/ - 是的,雖然圖表數據來自config上的'series'屬性,所以如果你不能動態地設置它(由於一次綁定),你最終會用相同的圖表兩次。希望有所幫助。 – Dan

+0

我結束了相同的圖表..我不認爲它會工作,但謝謝你的幫助壽 – VP1456