Хорошо, у меня есть контроллер, где мне нужно использовать функцию как параметр
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
...
Итак, что мне делать, чтобы использовать новую функцию в качестве параметра?
Не похоже, что вам нужно передать функцию в качестве параметра в контроллер, поэтому ваш заголовок несколько запутан.
Кажется, что вы хотите вызвать какую-то функцию во внутреннем _.each
. Возможно, я не понимаю ваши намерения, но я не вижу места, где этот iWillBeFunctionParam
необходимо передать как параметр ко всему.
Итак, у вас есть следующее: будь то в контроллере или нет, не имеет значения - концептуально говоря:
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...
}