2015-01-07 2 views
-1

У меня есть таймер пирога js, который получает время от node.js и рисования круговой диаграммы.Как сделать слушателем атрибут данных (angularJS)?

здесь код:

здесь у меня есть несколько данных -... = «» атрибутов, который рендеринг круговой диаграммы

<div id="myStat2" data-dimension="104" data-text="45" data-percent="0"></div> 

здесь JQuery часть того, что у меня есть это как-то слушатель но не лучшее решение.

var time = 0; 
setInterval(function(){ 
    time = $('#myStat2').attr('data-percent'); 
    $('#myStat2').empty(); 
    $('#myStat2').attr('data-percent', time); 
    $('#myStat2').attr('data-text', parseInt(time)); 
    $('#myStat2').circliful({animationstep: 0}); 
}, 100); 

здесь является результатом того, что полностью вынесено:

enter image description here

здесь все правильно и работает нормально, но я предполагаю, что это не самое лучшее решение. Я думал, что могу сделать это через angularJS, но я не знаю, как он работает. Может ли кто-нибудь предложить мне что-то лучшее?

+0

Это не угловое –

+0

Я знаю, что это не так. Просто я предположил, что угловой может помочь в этом вопросе. – VostanAzatyan

+0

heyyyy почему проголосовать, что не так? – VostanAzatyan

ответ

3

Большая концепция углового заключается в том, чтобы избежать такого рода привязок DOM, поскольку уже предусмотрено двухстороннее связывание данных. Я предполагаю, что myStat2 внутри углового масштаба, так почему бы не установить значение области на ваш взгляд:

<div id="myStat2" data-dimension="104" data-text="{{ dataText }}" data-percent="{{ dataPercent }}"></div> 

Вы можете изменить его прямо в $ объеме:

$scope.dataPercent = time; 
$scope.dataText = parseInt(time); 

Я не очень понимаю что вы пытаетесь достичь, однако, как этот код кажется бессмысленным:

time = $('#myStat2').attr('data-percent'); 
$('#myStat2').empty(); 
$('#myStat2').attr('data-percent', time); 

Я рекомендовал бы получить лучше понять из угловых и затем переместить эту диаграмму в какой-то директивы.

+0

Саймон Статон Спасибо за ваш ответ и пытаюсь помочь. Просто мне нужно что-то, что может поймать изменение атрибута данных и перезагрузить pie – VostanAzatyan

+0

Просто мне нужно вызвать некоторую функцию во время изменения – VostanAzatyan

+1

Тогда вы можете использовать директиву ngChange и установить функцию в $ scope. https://docs.angularjs.org/api/ng/directive/ngИспользуйте все, что вам нужно сделать. –

Смежные вопросы