AngularJS односторонняя привязка по пользовательской директиве

0

Я использую диаграммы AngularJS (https://github.com/pablojim/highcharts-ng)

У меня есть этот конфиг, и мне нужно убедиться, что он привязан только один раз. Я искал одностороннюю привязку к AngularJS, и он говорит, что мне нужно использовать :: если я использую AngularJs 1.3 (что я). Но я не уверен, как использовать его в пользовательской директиве.

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

Я пробовал что-то вроде, но он не работает

 <highchart config=":: configtemp"></highchart>
  • 0
    Не могли бы вы объяснить, что именно означает "это не работает"? Согласно моему комментарию ниже, использование :: действительно предотвратит изменение значения атрибута config , поэтому, если директива highchart собирает новые данные конфигурации, это не из этого значения области.
Теги:
highcharts
highcharts-ng

1 ответ

2

В этом отношении пользовательские директивы работают так же, как и угловые директивы. Графики AngularJS имеют изоляционный объем по следующим параметрам:

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

Таким образом, его область будет состоять из значений, назначенных этим атрибутам в html. таким образом

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

будет означать, что в области директивы scope.config будет равно ::configtemp. Так как у вас есть значение '::' значение configtemp не изменится (более известное как одноразовая привязка) от первого значения, как вы предложили/ожидали. (Пример этого в форме плункера).

У Highcharts есть дополнительная логика, но в конечном итоге внутренняя конфигурация получена из этого значения атрибута/области.

Без дополнительной информации я не могу сообщить, что "не работает".

  • 0
    Я хотел бы использовать один конфиг для нескольких графиков, это будет работать?
  • 0
    jsfiddle.net/u40vs8hk - да, хотя данные диаграммы поступают из свойства series в конфигурации, поэтому, если вы не можете установить это динамически (из-за однократной привязки), вы получите дважды одну и ту же диаграмму. Надеюсь, это поможет.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню