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