刷新Angular指令

时间:2016-02-12 08:27:51

标签: javascript angularjs angularjs-directive

我有这个使用服务的指令" BoxService "采取一定的价值。

angular.module("App").directive('boxedWidget',
   function () {
       return {
           restrict: 'E',
            scope: {       
            'source': '=',    
            },
          replace:true,
          templateUrl: '/widgets/box/widget.html',
          link: function (scope, element, attrs) {
              scope.item = scope.source;
               boxService
                .getBoxeValue(scope.item.id)
                .success(function(data, status, headers, config) {
                     scope.item.value = data;
                });

           }


        }

    });

现在我想每5秒刷新一次值。 有什么建议吗?

2 个答案:

答案 0 :(得分:2)

您可以尝试$interval在指令

中重新加载数据
$interval(function () {
loadData();
}, duration)

有关$interval的详细信息,请参阅Angular $interval

答案 1 :(得分:0)

你正确地注入了$ interval吗?

  angular.module("App").directive('boxedWidget', ['$interval', function($interval) {
       return {
           restrict: 'E',
            scope: {       
            'source': '=',    
            },
          replace:true,
          templateUrl: '/widgets/box/widget.html',
          link: function (scope, element, attrs) {
              scope.item = scope.source;
              // don't forget to inject $interval in the directive declaration
              $interval(function(){
                   boxService
                    .getBoxeValue(scope.item.id)
                    .success(function(data, status, headers, config) {
                         scope.item.value = data;
                    });
              }, 5000);
           }


        }

    });