2015-05-09 74 views
0

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":"[email protected]", 
"created_at":"2015-04-24T22:49:21.797Z", 
"updated_at":"2015-05-09T03:04:27.739Z", 
"username":"vinivini"}}] 

回答

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; 
} 

其中notes是您的服務可以訪問的筆記數組。

然後,你可以這樣做:

$scope.notes = notesService.getSummaryNotes(); 
+0

這真是棒極了!我只是有點頭,但我應該在我的後端解決這個問題。我不應該將用戶的詳細信息傳遞給服務屬性。因爲這可能會變成安全問題。我打算實施這一點。 – vinibol12

+0

的確,你的前端只應該得到它所需要的東西。如果它不需要使用/顯示註釋中的其他信息,則不要給它。 – UncleDave