angular.js更新变量的结果

时间:2016-10-08 21:02:07

标签: javascript angularjs arrays smart-table

我有一个angular.js表(使用智能表模块/插件),我试图根据在窗口中设置的一些数据更新它,特别是如何设置数据。

window.checker={};window.checker.checked = [{'ip':9,'port':0}]

然后我尝试使用下面的代码将该数据加载到我的angular.js表中

angular.module('myApp', ['smart-table'])
    .controller('mainCtrl', ['$scope', function ($scope) {
    setInterval(x($scope), 1000)
    function x($scope){
        function createRandomItem(ip, port) {
            var
                firstName = ip,
                lastName = port,
                age = Math.floor(Date.now() / 1000)

            return{
                firstName: firstName,
                lastName: lastName,
                age: age
            };
        }


        $scope.displayed = [];
    if (window.checker && window.checker.checked) {
        for (var j = 0; j < window.checker.checked.length; j++) {
            $scope.displayed.push(createRandomItem(window.checker.checked[j].ip, window.checker.checked[j].port));
        }
}
    }
    }])
    .directive('stRatio',function(){
        return {
          link:function(scope, element, attr){
            var ratio=+(attr.stRatio);

            element.css('width',ratio+'%');

          }
        };
    });

理论上它应该自动抓取window.checker.checked并填写结果,在某条线下没有发生,我目前对棱角的知识并没有帮助我找到任何解决方案。

1 个答案:

答案 0 :(得分:1)

我在这一行中看到了潜在的问题

setInterval(x($scope), 1000)

setInterval期望获得对函数的引用,但是在这里你直接调用它。您可以通过将x定义放入匿名函数或仅将x定义为函数回调直接在setInterval

中来修复它