AngularJS在ng中搜索按格式化日期重复,不带控制器
如何按日期筛选ng重复的结果? 在重复对象中,我有一个日期类型的字段。在视图中,我有一个文本输入来编写搜索查询。我使用日期过滤器来设置日期的格式。我想进行文本搜索 我找到了一种进行这种搜索的方法:AngularJS在ng中搜索按格式化日期重复,不带控制器,angularjs,date,search,format,ng-repeat,Angularjs,Date,Search,Format,Ng Repeat,如何按日期筛选ng重复的结果? 在重复对象中,我有一个日期类型的字段。在视图中,我有一个文本输入来编写搜索查询。我使用日期过滤器来设置日期的格式。我想进行文本搜索 我找到了一种进行这种搜索的方法: <thead> <tr> <td><input ng-model="search.surname"/></td> <td><input ng-model="search.name"/></td>
<thead>
<tr>
<td><input ng-model="search.surname"/></td>
<td><input ng-model="search.name"/></td>
<td><input ng-model="search.patronymic"/></td>
<td><input ng-model="search.passport" /></td>
<td><input ng-model="search.birthdayStr" /></td>
</tr>
<tr ng-repeat="client in clients | filter:search"
ng-init="client.birthdayStr = ( client.birthday.value | date:'dd.MM.yyyy' )">
<td>{{client.surname.value}}</td>
<td>{{client.name.value}}</td>
<td>{{client.patronymic.value}}</td>
<td>{{client.passport.value}}</td>
<td>{{client.birthdayStr}}</td>
</tr>
{{client.namite.value}
{{client.name.value}
{{client.patronymic.value}
{{client.passport.value}
{{client.birthdayStr}}
但是看起来很糟糕。有没有其他方法可以在不使用控制器的情况下实现同样的功能?您的问题是如何使其看起来更好,还是希望其功能有所不同?@JonathanRowny,如何使代码看起来更好。我只是不想用控制器格式化日期。不清楚你们在问什么。在您的问题中,您指出在使筛选看起来更优雅方面存在问题,但在代码示例中,您实际上使用了
ng init
来创建一个临时日期变量,该变量仅用于显示目的。当你使用它的时候,为什么不把{{client.birthdayStr}}}
替换为{{client.birthdayStr.value}}date:'dd.MM.yyyyy'}
并完全去掉nginit
表达式呢?@Stewie,问题是我添加了nginit以使它能够工作。我对AngularJS不是很有经验。事实上,如果我删除ng init并使用{{client.birth.value | date:'dd.MM.yyyy'}
按日期筛选字段根本不起作用。我还试图编写一个自定义验证器,但我总是得到0作为实际参数。我明白了。没有注意到您在上一个输入元素中使用了birthdayStr
。两种解决方案:1)编写一个自定义过滤器(这里似乎有点过分),2)在获取/创建客户端
数组的控制器内准备birthdayStr
。