如何只将两个属性传递给$ scope变量

时间:2015-05-09 04:38:01

标签: javascript angularjs

ANGULARJS问题:

我有一个对象数组,我需要将它传递给我的$ scope变量。特别为我创建问题的属性是user属性 因为它包含名称和电子邮件等元素,它会影响我在HTML中设置的过滤器过滤我想要显示的对象的方式。该对象是一个笔记列表,我希望能够按照笔记(标题和正文)中的内容过滤它们

我尝试使用下面的代码从对象中删除属性用户,但这不起作用。 $scope.notes仍会加载该属性。

理想情况下,我应该只能传递$scope.notes标题和正文属性。有关如何有效地做到这一点的任何想法?

 var notes = notesService.notesObjectInService;
    for (var i = 0;  i < notes.length; i++) {
        delete notes[i].user;
    };

    $scope.notes = notes;

这是传递给第一行注释的json对象。

[{"id":184,
"title":"Mari",
"body":"Mae",
"created_at":"2015-05-09T03:23:04.250Z",
"updated_at":"2015-05-09T03:23:04.250Z",
"user_id":1,
"user":{"id":1,
"email":"vini@vini.com",
"created_at":"2015-04-24T22:49:21.797Z",
"updated_at":"2015-05-09T03:04:27.739Z",
"username":"vinivini"}}]

1 个答案:

答案 0 :(得分:1)

如何将此功能添加到notesService?

function getSummaryNotes() {
  var returnValue = [];

  for (var i = 0;  i < notes.length; i++) {
    var note = notes[i];
    returnValue.push({title: note.title, body: note.body});
  }

  return returnValue;
}

如果笔记是您的服务可以访问的笔记数组。

然后你可以这样做:

$scope.notes = notesService.getSummaryNotes();