Javascript Angular.js-ng repeat中当前选定选项的值
我有一些条目,它们的json对象看起来有点像Javascript Angular.js-ng repeat中当前选定选项的值,javascript,angularjs,ng-repeat,Javascript,Angularjs,Ng Repeat,我有一些条目,它们的json对象看起来有点像 { 'id': 5, 'activityId': 1 } { 'id': 1, 'name': 'Activity name', 'rate': 1200 } <tr ng-repeat="entry in entries"> <td> <activities></activities> </td> <
{
'id': 5,
'activityId': 1
}
{
'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>'
}
});
然后是活动,它们的json对象如下所示
{
'id': 5,
'activityId': 1
}
{
'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>'
}
});
现在我呈现的是这样的条目
{
'id': 5,
'activityId': 1
}
{
'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>'
}
});
其中activities是一个如下所示的指令
{
'id': 5,
'activityId': 1
}
{
'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等
因此,在我的控制器中,我将加载条目和活动,然后循环遍历条目并向每个条目添加活动。。但我也必须在那里使用同样的过滤器,不是吗?如果我在控制器中循环通过条目,从id==activityId的活动中复制速率,然后在指令中选择change,我会更新它?@foxx Yes,在服务中或在控制器中循环通过条目并分配正确的活动,会怎么样。对于这一点,你可以使用与我的答案相同的结构。这样做更好的原因是循环只执行一次,而不是无数次的更新等等。。关于你的第二个评论。我不会将速率复制到条目中,因为这是冗余数据。@foxx不完全是。因为如果复制速率,就复制了值。因此,如果出于任何原因,您以后更改活动的费率,则不会反映在条目上。但是,如果您指定了通过引用指定的活动。因此,速率的变化将反映在这两个地方。@foxx个人来说,在使用angular时,我不会使用正常的提交方式提交表单,而是使用ajax提交表单。如果不可能,我会对实际值使用隐藏输入,例如。