gpt4 book ai didi

javascript - Init 函数运行多次

转载 作者:行者123 更新时间:2023-12-03 08:03:10 24 4
gpt4 key购买 nike

我的 JavaScript 代码有问题。我有一个 init 函数,它调用函数 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 in init”运行了 5 次,但是当我删除推送时,控制台消息仅写入一次。这怎么可能?

最佳答案

我找到了导致我的问题的原因。正如一些评论所建议的那样,我在错误的地方进行了搜索。发生错误是因为我使用带 Angular 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 是多重 init 的原因。

关于javascript - Init 函数运行多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34512317/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com