我写了这个例子:http: //jsfiddle.net/risabh/Kuewm/
声明哈希时,您可以在指令范围内使用 '=' 进行 2 路数据绑定。
scope : {
value : '=' // '=' indicates 2 way binding
}
现在您需要为每个图表独立更新控制器中的数据,它们将在您的视图/指令中更新。
现在您可以像这样使用 $timeout 轮询您的服务:-
$scope.chartValue = /*service call to init */;
var poll = function() {
$timeout(function() {
/* service call to update chartValue */
poll();
}, 1000);
};
poll();
这将在 1000 毫秒后更新您的 chartValue。您可以为不同的图表使用不同的值。
编辑:这是小提琴http://jsfiddle.net/risabh/76sKy/
您可以只传递值并在指令控制器中更新它们。
scope : {
pollingperiod : '@',
param1 : '@',
param2 : '@'
},
controller: ['$scope', '$element', '$attrs', '$transclude', '$timeout',
function($scope, $element, $attrs, $transclude, $timeout) {
var poll = function() {
$timeout(function() {
//update your chart
$scope.param1 = $scope.param2;
$scope.param2++ ;
poll();
}, 100*$scope.pollingperiod);
};
poll();}],