我有一个Angular应用程序,我在循环浏览一个集合。我正在使用经典的for循环,但是喜欢使用更新的东西。 underscore.js已经包含在项目中了,我看了一下使用_.each
这是我当前(工作)的js代码:
Batches.create($scope.newPanel).then(function(panel) {
console.log('panel created: ' + panel.id);
for(i = 0; i < $scope.selector.tabledata.length; i++){
createPanelDetails(panel.id, $scope.selector.tabledata[i]);
}
我想使用_.each,但是如何传递 panel.id 变量,就像我使用for循环一样?
_.each($scope.selector.tabledata, createPanelDetails(panel.id ??, iterator???);
或者我应该使用下划线中的其他方法来实现这一目标吗?
答案 0 :(得分:2)
使用内联函数:
_.each($scope.selector.tabledata, function(data) {
createPanelDetails(panel.id, data);
});
答案 1 :(得分:1)
通过下划线
_.each($scope.selector.tabledata, function(elem) {
createPanelDetails(panel.id, elem);
});
通过角度
angular.forEach($scope.selector.tabledata, function(elem, i){
createPanelDetails(panel.id, elem);
});
我建议遵循冰箱的建议,使用角度来保持一致性。
答案 2 :(得分:1)
您也可以使用bind创建部分函数
下划线
_.each($scope.selector.tabledata, _.bind(createPanelDetails, undefined, panel.id));
角:
angular.forEach($scope.selector.tabledata, angular.bind(undefined, createPanelDetails, panel.id));
答案 3 :(得分:1)