javascript - Angular JS : Use orderby with a select tag selected value

标签 javascript angularjs

我正在尝试订购一份订单详细信息表。 从选择标记的下拉列表中选择排序依据的属性。

这两个属性是订单 ID 和产品数量,这是我从 Controller 函数获得的。

功能:

$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 结果绑定(bind)到选择值?

最佳答案

将 HTML 更改为:

    <div>
    <select ng-model="orderByAttr">
        <option ng-value="'id">id</option>
        <option ng-value="'productCount'">Product Count</option>

    </select>
</div>
<div ng-repeat="order in orders | orderBy: orderByAttr">
    <div>
        <div>{{order.id}}</div>
    </div>
</div>

我不确定您的数据是什么样的,但我认为它与此类似:

$scope.orders = [{
    id: 1,
    products : [{
      productId: 1,
      name: 'Okra'

    },
  {productId: 3,
  name: 'Pear'}]

}, 
{
id: 2,
products : [{
  productId: 2,
  name: 'Apple'
}]
},
{
  id:3,
  products: [{
    productId: 1,
    name: 'Okra'
  }
  ]
}
]

您可以使用“forEach”来获取产品数量,如下所示:在此处输入代码

    angular.forEach($scope.orders, function(value,key){
  $scope.orders[key].productCount = value.products.length;
})

这是一个Plunker 。如果这不是您需要的,请告诉我。

关于javascript - Angular JS : Use orderby with a select tag selected value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38727615/

相关文章:

mysql - AngularJS 指令无法检查 null

javascript - 以 Angular 呈现表中数据的最佳方法

javascript - 使用 AngularJS 的 Flickr 搜索,结果不会让我一直滚动到顶部

javascript - AngularJS : concatenate depending on variable value

javascript - 将文本插入文本区域后功能发生变化

javascript - 使用 jquery 切换最大化宽度和高度 div

php - 无法使用 AngularJS $http.json/get 从远程服务器获取 JSON

javascript - 摩卡 - TypeError : Cannot read property '$scope' of undefined

javascript - 在 Angular 中上传图片时如何停止/防止重定向

javascript - React 和动态路由,包括文件名和扩展名