在AngularJS 1.2中,我有一个控制器,可以将JSON数据读入单个记录。这些记录(会议会话)每个都有阵列,其中包括会话发言人。就是这样:
data: [{title: 't1',speakers: ['speaker1','speaker2']},...]
我想编写一些将扬声器组合在一起的JavaScript,以便在我的ng-repeater中我可以简单地输出它们。也就是说,我想在模型中创建一个以逗号分隔的发言者列表的新属性。
如果我使用转发器,我遇到了杀死尾随逗号的问题,并且没有在span或div中使用该数据导致换行。
答案 0 :(得分: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(',');
}]);
答案 1 :(得分:1)
如果您只想为视图组合扬声器,那么过滤器将是正确的选择。内置了无组合过滤器,但很容易创建:
module.filter('combine', function() {
return function(array) {
return array.join(', ');
}
});
在您看来:
<p>{{data.speakers | combine}}</p>
输出结果为:
<p>speaker1, speaker2</p>