2014-10-17 28 views
0

在AngularJS 1.2中,我有一個控制器,可以將JSON數據讀入單個記錄。這些記錄(會議會議)每個都有陣列,它們是會議發言人。也就是說,這樣的:如何創建一個新的模型屬性,它結合了來自模型記錄的數據

data: [{title: 't1',speakers: ['speaker1','speaker2']},...] 

我想寫一些JavaScript,將結合揚聲器,這樣在我的NG-中繼我可以輸出他們根本。也就是說,我想在模型中創建一個以逗號分隔的發言者列表的新屬性。

如果我使用thng-repeater,我遇到的問題是殺死尾隨逗號,並且沒有導致換行的span或div中的數據。

+0

你能告訴你目前的做法是什麼? – 2014-10-17 22:14:46

+0

data.speakerList = data.speakers.join() – 2014-10-17 22:19:16

回答

1

如果你只想音箱相結合,爲視圖,然後過濾器將是正確的選擇。有沒有內置組合式過濾器,但它很容易創建:

module.filter('combine', function() { 
    return function(array) { 
    return array.join(', '); 
    } 
}); 

在你看來:

<p>{{data.speakers | combine}}</p> 

輸出將是:

<p>speaker1, speaker2</p> 
1

如果我解釋你的問題正確地做你想要做的東西像下面這樣:

module.controller('Controller', ['$scope', function ($scope) { 
    var data = [ 
      {title: 't1', speakers: ['speaker1', 'speaker2']} 
     ], 
     speakers = []; 

    angular.forEach(data, function (object, i) { 
     speakers = speakers.concat(object.speakers); 
    }); 

    $scope.allSpeakersText = speakers.join(','); 
}]); 
+0

謝謝埃斯特萬。我想到了這一點,但作爲Angular的新手,我想知道是否有一層更貼近視圖,爲我做到了這一點。也許我在想這個。 – 2014-10-17 22:27:34

相關問題