【问题标题】:Filter a list with input type="date" AngularJS过滤输入类型=“日期”的列表 AngularJS
【发布时间】:2016-04-04 13:01:32
【问题描述】:

我只是想用 AngularJS 从输入类型 = 日期的表中过滤数据。因此,例如,如果您在输入字段中选择日期 30/04/2016,我只想显示该日期的记录。在它什么都不做的那一刻,它根本没有过滤。如果我将输入类型更改为文本,则过滤器可以工作,但我希望用户选择日期而不是输入字符串。

HTML:

<div class="form-group col-md-3">
    <label for="l">Bidding date</label>
    <input type="date" id="b" ng-model="searchBidding.tenderbiddingdateoffersubmission"class="form-control">
</div>
<tbody ng-repeat="result in rowCollection | filter:searchBidding>
    <td >{{result.tenderbiddingdateoffersubmission | date:"dd/MM/yyyy"}}</td>

    <td width="145px"><button type="submit" ng-click="clicked2(result.tenderid)"  class="btn btn-primary">Edit</button>
    <button ng-click="clicked(result.tenderid)" type="submit" class="btn btn-primary">display</button></td>
</tbody>

【问题讨论】:

  • 那么什么不起作用或问题出在哪里?
  • 我更新了问题

标签: javascript angularjs date filter


【解决方案1】:

您可能想观察searchBidding.tenderbiddingdateoffersubmission 变量的变化。你可以在你的控制器中做:

$scope.$watch('searchBidding.tenderbiddingdateoffersubmission', function(newValue, oldValue) {
    // do whatever ...
    updateFilteredDate();
});

或者您可以只使用ng-change(取决于您的用例)。

【讨论】:

  • 我认为 type="date" 造成了问题,而不是它看不到它已经改变的事实
  • 我不认为type="data" 引起了问题,你可以制作jsfiddle 或plnkr 吗?
【解决方案2】:

你明白| date:过滤器是一个输出过滤器,是吗?
过滤逻辑应该在控制器的$scope.searchBidding() 函数中,对吧?
所以我想你应该展示searchBidding()的实现......

【讨论】:

  • 是的,我知道,但我之所以使用 g-model="searchBidding.tenderbiddingdateoffersubmission" 和 filter:searchBidding 是因为 Angular 自动知道他必须过滤 {{result.tenderbiddingdateoffersubmission }}。我的控制器中没有任何功能。这种工作方式适用于普通字符串。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多