繁体   English   中英

初始化函数运行多次

[英]Init function runs multiple times

我的JavaScript代码有问题。 我有一个初始化函数,该函数调用一个函数getDevices(),然后编写控制台消息。 getDevices函数具有4D数组,该数组用作名为objectify的新函数的参数。 该函数将创建一个4D数组数据对象。 但是我的问题是,当我推送到另一个将存储新对象的数组时,init函数将再次运行。

vm = this;
vm.dataObj = [];

(function init(){
    getData();
    console.debug("im in init!");
 })();

function getData(){
    var data = [
      [1, 2, 3, 4],
      [1, 2, 3, 4],
      [1, 2, 3, 4],
      [1, 2, 3, 4]
    ];
    objectify(data);
}



 function objectify(dataArray){
        vm.dataObj = [];
        for(var i=0; i < dataArray.length; i++ ){
            vm.dataObj .push({
                nr1: dataArray[i][0],
                nr2: dataArray[i][1],
                nr3: dataArray[i][2],
                nr4: dataArray[i][3]
            });
        }
    }

从上面的代码中,控制台消息“ im init”被运行5次,但是当我删除推送时,控制台消息仅被写入一次。 这怎么可能?

我发现了造成我问题的原因。 正如某些评论所建议的那样,我在错误的地方进行搜索。 发生错误是因为我使用带角度的ui-grid,在网格配置的columnDefs之一中,我使用了cellTemplate。 看起来像这样:

'<div class="ui-grid-cell-contents ngCellText" ng-controller="DevicesController as vm"><a ng-click="vm.goToDevice(row.entity)">{{COL_FIELD}}</a></div>',

意思是ng-controller是多次初始化的原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM