【发布时间】:2016-10-11 05:49:19
【问题描述】:
我收到 JSON 对象,其中有一个数组元素,我想要这些数字数据的平均值并将其分配给视图中的 ng-model。
我的 Json 对象。
{
"status": "success",
"data": [{
"name": "[1] Data 1",
"ratings": [4, 5, 5, 5, 3, 5, 4, 5, 3]
}, {
"name": "[2] Data 2",
"ratings": [2, 4, 2, 2, 3, 1, 2, 5]
}, {
"name": "[3] Data 3",
"ratings": [3, 3, 3, 3, 3, 3, 3, 3]
}]
}
现在,我想将“评分”数据的平均值分配给 uib-rating 的 ng-model
我的观点
<ul class="video-list">
<li ng-repeat="data in getVideoListsCtrl.result" class="col-sm-3 col-xs-12" ng-click="getVideoListsCtrl.loadSingleVideoAndPlay(data)">
<span class="vname">{{data.name}}</span>
<span class="vratings">
<span uib-rating ng-model={{data.ratings | avarageConverter}} max="max" read-only="isReadonly">
</span>
</span>
</li>
</ul>
我尝试使用调用函数或应用过滤器。
.filter('avarageConverter', function() {
return function (arr) {
var sum = 0;
for(var i=0; i<arr.length; i++) {
sum += arr[i];
}
return sum / (arr.length === 0 ? 1 : arr.length);
};
但它不起作用。
【问题讨论】:
标签: angularjs arrays average angular-ngmodel