首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择显示在geonetwork主页中的类别

选择显示在geonetwork主页中的类别
EN

Stack Overflow用户
提问于 2019-02-20 22:24:22
回答 2查看 92关注 0票数 0

在Geonnetwork3.6主页中,我想选择要显示的元数据类别。Geonetwork使用带有AngularJs的分面搜索(我不熟悉)来选择显示的类别。默认情况下,将显示所有可用的类别。

代码如下所示:

代码语言:javascript
复制
<div class="row"> 

        <span data-ng-repeat="(key, facet) in searchInfo.facet['category']"  
              class="col-xs-12 col-sm-6 col-md-4 chips-card">
              <a href="#/search?facet.q=category%2F{{facet['@name']}}">
                <img class="pull-left img-thumbnail" src="http://localhost:8080/geonetwork/images/harvesting/odnature.png" alt="thumbnail image"></img>
              </a>
             <a class="pull-left clearfix"
               title="{{facet['@label']}}">

              <span class="badge-text pull-left">
                <span class="gn-icon-label">{{facet['@label']}}</span>
              </span>  
          </a>
        </span>  
     </div>

我只需要选择其中的一小部分,而不是拥有所有的类别。我尝试通过更改ng-repeat元素进行过滤,如下所示:

代码语言:javascript
复制
<span data-ng-repeat="(key, facet) in searchInfo.facet['category'] == 'some_category'"

但是没有结果。有没有一种方法可以很容易地选择显示哪些元素?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-20 23:57:39

AngularJS具有用于ngRepeatfilter语法

代码语言:javascript
复制
<span data-ng-repeat="(key, facet) in searchInfo.facet['category'] | filter:'some_category'" ...>  

如果要按多个字符串进行过滤,最好使用谓词函数:

代码语言:javascript
复制
<span data-ng-repeat="(key, facet) in searchInfo.facet['category'] | filter:catSubset" ...>  

在控制器中定义谓词函数:

代码语言:javascript
复制
$scope.catSubset = function(value, index, array) {
  if(value == "some_category" || value == "some_other_category") {
    return true;
  }
}

这不受Internet Explorer支持(没有polyfill),但更易于读/写:

代码语言:javascript
复制
var selectedCategories = [
    "some_category", 
    "some_other_category"
];
$scope.catSubset = function(value, index, array) {
  if(selectedCategories.includes(value)) {
    return true;
  }
}
票数 0
EN

Stack Overflow用户

发布于 2019-02-25 17:40:21

由于我需要的类别数量非常有限,我改变了策略,并对其进行了硬编码,而不是使用过滤器选项。如果需要许多类别,这不是一个有效的解决方案,但对于我来说,它是可以接受的。我是这样写的:

代码语言:javascript
复制
<div class="col-sm-12 col-md-12" data-ng-show="browse !== ''"> <!-- set width of facet box on main page -->
      <h3>

      <div class="row">  <!-- box containing the different topics -->

        <!-- First category -->
        <div class="col-xs-12 col-sm-6 col-md-4 chips-card text-center">

              <a href="#/search?facet.q=keyword%2FMarine Spatial Plan%26type%2Fdataset&resultType=details">
                <img class="img-thumbnail" src="http://localhost:8080/geonetwork/images/harvesting/belgica-image.jpeg" alt="thumbnail image"></img>
                <p>Marine Spatial Plan</p>
              </a>
        </div>  


        <!-- Second category -->
        <div 
              class="col-xs-12 col-sm-6 col-md-4 chips-card text-center">

              <a href="#/search?facet.q=keyword%2FMarine Strategy Framework Directive%26type%2Fdataset&resultType=details">
                <img class="img-thumbnail" src="http://localhost:8080/geonetwork/images/harvesting/MSFD-logo.jpeg" alt="thumbnail image"></img>
                <p class="text-center">Marine Strategy Framework Directive</p>
              </a>
        </div>  

诸若此类。

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

https://stackoverflow.com/questions/54788586

复制
相关文章

相似问题

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