返回语句在Angular中不适用于对象

Sam*_*der 2 javascript frontend client object angularjs

非常基本的东西......似乎它应该工作,但不是

这两个控制台日志都会吐出正确的信息.

$scope.getCurrentAttachment = function() {
  angular.forEach(attachments, function(attachment) {
    console.log(attachment);
    if(attachment.active) {
      console.log(attachment);
      return attachment;
    }
  });
};
Run Code Online (Sandbox Code Playgroud)

但后来在文件中调用它变得未定义

$scope.save = function() {
  console.log( $scope.getCurrentAttachment());
  var data = [$scope.labels.selected, $scope.getCurrentAttachment()];
  console.log(data);
  $uibModalInstance.close(data);
};
Run Code Online (Sandbox Code Playgroud)

任何帮助都会很有帮助.我不知道为什么这不起作用

Man*_*bre 5

$scope.getCurrentAttachment = function() {
  angular.forEach(attachments, function(attachment) {
    console.log(attachment);
    if(attachment.active) {
      console.log(attachment);
      return attachment;
    }
  });
};
Run Code Online (Sandbox Code Playgroud)

return你在这里的子句是angular.forEach函数,而不是getCurrentAttachment.

您可以使用.filterArray ptototype中的函数执行以下操作.

$scope.getCurrentAttachment = function() {
  var filteredArray = []
  filteredArray = attachments.filter(function(attachment) {
    console.log(attachment);
    return attachment.active;

  });
  return filteredArray ;
};
Run Code Online (Sandbox Code Playgroud)