首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ng-如果隐藏页面中除1以外的所有元素

ng-如果隐藏页面中除1以外的所有元素
EN

Stack Overflow用户
提问于 2016-07-31 21:58:15
回答 2查看 491关注 0票数 0

我的页面上有几个div,它们使用ng-if来显示。我的问题是某些元素是重复的。

我想做的是在ng中使用另一个表达式--在这个例子中,我添加了下面的(hideMultiplePost)来隐藏这些重复的元素,我的想法是通过添加一个使用帖子id的类来识别它们,因为重复的元素共享相同的id。

代码语言:javascript
复制
<div ng-repeat="post in postList">
    <div class="{{post.id}}" ng-if="post.cat.length > 0 && hideMultiplePost(post.id)">
</div>

<div ng-repeat="post in postListV2">
    <div class="{{post.id}}" ng-if="post.cat.length > 0 && hideMultiplePost(post.id)">
</div>

有没有人可以给我一个正确的方向,让我使用一个表达式(hideMultiplePost),我可以检查重复的类,并从前端排除它们,但留下一个,因为我不想全部排除它们。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-31 22:19:24

如果您无法控制中的数据,则可以使用筛选器删除重复项。我假设它是一个ng-repeat,但您可以编辑以供自己使用。更多细节请参见小提琴。

代码语言:javascript
复制
   <div ng-repeat="item in data | dedupe:'id'">
      {{item.id}}: {{item.name}}
   </div>

编辑:合并控制器中的两个源(postListpostListV2),然后使用过滤器进行重复数据删除:

代码语言:javascript
复制
function MyCtrl($scope) {
    $scope.postList = postList;
    $scope.data = $scope.postList.concat(postListV2)
}

更多信息请访问:http://jsfiddle.net/Lvc0u55v/7736/

票数 0
EN

Stack Overflow用户

发布于 2016-07-31 22:21:18

你可以使用现有的由angular UI提供的“唯一”过滤器。

唯一筛选器允许您在模型中提供一个应该是唯一的字段。我假设你所有的帖子都有一个id,并且这个id是唯一的。您可以根据此字段过滤出多个帖子。

在应用过滤器之后,您仍然可以使用ng-if语句检查帖子是否包含任何类别。

有关如何使用它的更多信息,请查看代码片段。

代码语言:javascript
复制
angular
  .module('app', ['ui.filters']);

angular
  .module('app')
  .controller('PostListController', PostListController);

function PostListController() {
  var vm = this;
  vm.posts = getPosts();
}


function getPosts() {
  return [{
    "id": 1,
    "title": "Post Title",
    "content": "Post content here"
  }, {
    "id": 2,
    "title": "Post Title",
    "content": "Post content here"
  }, {
    "id": 3,
    "title": "Post Title",
    "content": "Post content here"
  }, {
    "id": 4,
    "title": "Post Title",
    "content": "Post content here"
  }, {
    "id": 5,
    "title": "Post Title",
    "content": "Post content here"
  }, {
    "id": 3,
    "title": "Post Title",
    "content": "Post content here"
  }, {
    "id": 4,
    "title": "Post Title",
    "content": "Post content here"
  }];
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui/0.4.0/angular-ui.js"></script>

<div ng-app="app">

  <div ng-controller="PostListController as vm">
    
    <ul>
      <li ng-repeat="post in vm.posts | unique:'id'">
        <b>#{{ post.id }} {{ post.title }} </b><br />
        <p>{{ post.content }}</p>
      </li>
    </ul>

  </div>

</div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38684695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档