我试图订购一张订单细节表。 从选择标签的下拉列表中选择要排序的属性。Angular JS:使用orderby与选择标记选定的值
这两个属性是订单ID和产品数量,我从控制器功能中获得。
功能:
$scope.countProducts = function(order){
var counter = 0;
order.products.forEach(function(currProd){
counter += currProd.count;
});
return counter;
};
ID是数值变量。
我的观点: 详情表:
<table>
<thead>
<tr>
<!-- a headline row -->
</tr>
</thead>
<tbody>
<tr ng-repeat="order in orders | orderby: orderByAttr">
<!-- order details rows -->
</tr>
</tbody>
</table>
选择标记与选择:
<select ng-model="orderByAttr">
<option ng-value="order.id">id</option>
<option ng-value="countProducts(order)"> products count </option>
</select>
如何传递的选项将过滤器订单的价值? 如何将countProduct结果绑定到选择值?
我已经与该foreach概念工作,它的工作,但我仍然不能dynamiclly更改属性排序。我的选择看起来很像你的例子,我可以通过prodCount属性来定购它。出于某种原因,它只会选择prodCount选项。 –
检查您的数据。 Id字段必须与数据中的Id字段完全拼在一起。如果您的数据字段被称为'Id'或'ID','id'将不起作用。 –