Как сообщить Angular директиве, что значения области видимости изменились?
Я пытаюсь создать угловую директиву, которая будет рисовать гистограмму d3. Я не могу точно определить, куда добавить код рисования D3, чтобы диаграмма перерисовывалась каждый раз при изменении значений диаграммы (значения привязаны к изолированной области видимости). Я пытался поместить этот код в функцию ссылки, но это отображает диаграмму только один раз. Он не вызывается каждый раз, когда изменяется область действия. Смотрите код ниже или полный jsFiddle здесь.
function barchart() {
var directive = {
link: link,
restrict: 'A',
scope: {
values: '='
}
};
return directive;
function link(scope, element) {
// Draw D3 chart here
element.html(scope.values);
};
}
1 ответ
Решение
Вы можете следить за изменениями:
function link(scope, element){
scope.$watch("values", function(newVal, oldVal){
// do whatever you need to regenerate the graph
});
}