我有条目,他们的json对象看起来像这样

{
    'id': 5,
    'activityId': 1
}


然后我有活动,他们的json对象看起来像这样

{
    'id': 1,
    'name': 'Activity name',
    'rate': 1200
}


现在我正在渲染这样的条目

<tr ng-repeat="entry in entries">
    <td>
        <activities></activities>
    </td>
    <td>
        // here's supposed to be the rate
    </td>
</tr>


活动是这样的指令

app.directive("activities", function() {
    return {
        restrict: 'E',
        template: '<select ng-model="entry.activityId" ng-options="a.id as a.name for a in activities"></select>'
    }
});


现在我需要做些什么,才能在ng-repeat中打印速率?由于它是指令内部内容的属性,但是我需要在指令外部打印它。

谢谢..

最佳答案

您可以使用:

{{(activities | filter:{id: entry.activityId})[0].rate}}


虽然我觉得这有点难看。更好的方法是将活动直接添加为实体的属性,也许在加载两个数据集之后也可以。另一种方法是自制过滤器,该过滤器还会检查错误(例如,未找到activityId等)。

http://plnkr.co/edit/4ljEdDFPBpOzueFuI6FT

07-28 13:44