Я использую диаграммы AngularJS (https://github.com/pablojim/highcharts-ng)
У меня есть этот конфиг, и мне нужно убедиться, что он привязан только один раз. Я искал одностороннюю привязку к AngularJS, и он говорит, что мне нужно использовать ::
если я использую AngularJs 1.3 (что я). Но я не уверен, как использовать его в пользовательской директиве.
<highchart config="configtemp"></highchart>
Я пробовал что-то вроде, но он не работает
<highchart config=":: configtemp"></highchart>
В этом отношении пользовательские директивы работают так же, как и угловые директивы. Графики AngularJS имеют изоляционный объем по следующим параметрам:
scope: {
config: '=',
disableDataWatch: '='
},
Таким образом, его область будет состоять из значений, назначенных этим атрибутам в html. таким образом
<highchart config=":: configtemp"></highchart>
будет означать, что в области директивы scope.config
будет равно ::configtemp
. Так как у вас есть значение '::'
значение configtemp
не изменится (более известное как одноразовая привязка) от первого значения, как вы предложили/ожидали. (Пример этого в форме плункера).
У Highcharts есть дополнительная логика, но в конечном итоге внутренняя конфигурация получена из этого значения атрибута/области.
Без дополнительной информации я не могу сообщить, что "не работает".
series
в конфигурации, поэтому, если вы не можете установить это динамически (из-за однократной привязки), вы получите дважды одну и ту же диаграмму. Надеюсь, это поможет.
::
действительно предотвратит изменение значения атрибутаconfig
, поэтому, если директива highchart собирает новые данные конфигурации, это не из этого значения области.