gpt4 book ai didi

javascript - 在 Controller 中使用函数作为参数

转载 作者:行者123 更新时间:2023-12-03 09:40:35 25 4
gpt4 key购买 nike

好的,我有一个 Controller ,我需要在其中使用函数作为参数

angular.module('myCtrl', function($scope) {
$scope.$on('lines:deselectLine', function(ev, slip) {
_.each($scope.lineItems, function(lineItem) {
_.each(lineItem, function(lineLeague) {
_.each(lineLeague, function(line) {
_.each(line.rows, function(row) {
if (row.nss + '' === slip.nss) {
var line = slip.line;
if (line === row.spread.line + '') {
row.spreadSelected = false;
}
if (line === row.total.line + '') {
row.totalSelected = false;
}
if (line === row.moneyLineId + '') {
row.moneyLineSelected = false;
}
}
});
});
});
});
});
});

这是完整的函数,但我需要将这部分放在函数中

          if (row.nss + '' === slip.nss) {
var line = slip.line;
if (line === row.spread.line + '') {
row.spreadSelected = false;
}
if (line === row.total.line + '') {
row.totalSelected = false;
}
if (line === row.moneyLineId + '') {
row.moneyLineSelected = false;
}
}

所以最后我需要这样的东西

angular.module('myCtrl', function($scope) {
$scope.$on('lines:deselectLine', function(ev, slip) {
_.each($scope.lineItems, function(lineItem) {
_.each(lineItem, function(lineLeague) {
_.each(lineLeague, function(line) {
_.each(line.rows, function(row, iWillBeFunctionParam) {
//SOMETHING NEW WILL HAPPEN HERE
});
});
});
});
});

$scope.iWillBeFunctionParam = function(slip) {
if (row.nss + '' === slip.nss) {
var line = slip.line;
if (line === row.spread.line + '') {
row.spreadSelected = false;
}
if (line === row.total.line + '') {
row.totalSelected = false;
}
if (line === row.moneyLineId + '') {
row.moneyLineSelected = false;
}
}
};

});

请注意 $scope.$on 它是一个 $emit...

那么,我应该怎么做才能使用新函数作为 Param ?

最佳答案

看起来您不需要将函数作为参数传递给 Controller ​​,因此您的标题有点令人困惑。

您似乎想调用最里面的_.each中的某个函数。也许我误解了您的意图,但我没有看到任何地方需要将此 iWillBeFunctionParam 作为参数传递给任何内容。

因此,您有以下内容 - 无论是否在 Controller 中,都不相关 - 从概念上讲:

var lines = [[], [], []]; // array of arrays

$scope.$on("foo", function(ev, slip){
_.each(lines, function(line){
_.each(line.rows, function(row){
doSomethingWith(slip, line, row);
})
})
})

然后您可以相应地定义您的 doSomethingWith 函数:

function doSomethingWith(slip, line, row){
// etc...
}

关于javascript - 在 Controller 中使用函数作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31195009/

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