【问题标题】:angular filter without using angular function不使用角度函数的角度滤波器
【发布时间】:2017-06-09 07:14:57
【问题描述】:

我想做的是创建 2 个显示任务的角度表。在第一个表中,我想显示所有未分配给用户的任务,在第二个选项卡中,我想显示所有分配给用户的任务

UsersDTO 是数组,我可能有更多用户分配给同一任务。

我的 html 代码如下所示。这是我获得所有任务的选项卡,其中分配了用户。我不太确定为什么会这样,但我认为它会以某种方式查看属性并检查是否有任何东西。

<tbody>
    <tr ng-repeat="task in project.ProjectTasksDTO | filter: {UsersDTO: {}}">
         <td>{{task.Id}}</td>
         <td>{{task.Title}}</td>
         <td>{{task.Text}}</td>
         <td>{{task.Description}}</td>
         <td><p ng-repeat="user in task.UsersDTO">{{user.UserName}}</p></td>
         <td>{{task.Status}}</td>                                                  
         <td>{{task.CreatedBy}}</td>
         <td><button class="btn-info" ng-click="editUser(user);">Profile</button></td>
    </tr>
</tbody>

有没有办法告诉在ng-repeat 中过滤UsersDTO 是空还是空,类似于下面的代码。

<tbody>
    <tr ng-repeat="task in project.ProjectTasksDTO | filter: {UsersDTO: {null}}">
         <td>{{task.Id}}</td>
         <td>{{task.Title}}</td>
         <td>{{task.Text}}</td>
         <td>{{task.Description}}</td>
         <td><p ng-repeat="user in task.UsersDTO">{{user.UserName}}</p></td>
         <td>{{task.Status}}</td>                                                  
         <td>{{task.CreatedBy}}</td>
         <td><button class="btn-info" ng-click="editUser(user);">Profile</button></td>
    </tr>
</tbody>

【问题讨论】:

  • 不确定是否可以在没有自定义过滤器功能的情况下完成 - 有什么理由不使用?
  • 我没有具体的原因,但我很好奇这样的事情是否可以用 ng-repeat 过滤器完成
  • @Everton Santos 这正是我想要的。谢谢
  • @Martin 不客气。我以前需要它

标签: angularjs filter


【解决方案1】:

您好,您可以这样做,而无需函数。

<div ng-repeat="task in project.ProjectTasksDTO | filter:{UsersDTO.length: 0}:true">

<div ng-repeat="task in project.ProjectTasksDTO | filter:{UsersDTO.length: 0}:false">

请记住,:true 和 :false 表示法实际上是角度特定的简写表示法,将在字面比较中替换为 function(actual,expected) 以查看它们是否匹配 yes:true 或 no:false

Fidle

【讨论】:

  • 嗨,这看起来也是一个非常好的解决方案,但它给我一个语法错误:令牌'。'出乎意料,在表达式 [project.ProjectTasksDTO | 的第 39 列期望 [}]过滤器:{task.UsersDTO.length: 0}:true] 从 [.UsersDTO.length: 0}:true] 开始。
  • 你确定它没有被弃用吗?每当我在表达式中使用点时,它只会抛出一个错误。我已经使用 ng-if 解决了这个问题,如下所示: 但我必须在我的服务器上进行额外的修改在我的对象为空时向我的对象发送 null
  • @Martin 我添加了一个 plunkr 来澄清
猜你喜欢
相关资源
最近更新 更多
热门标签