【问题标题】:Add footer with link in list of suggestions in autocomplete material angular在自动完成材料角度的建议列表中添加带有链接的页脚
【发布时间】:2015-10-07 00:16:23
【问题描述】:

我正在使用(看起来很棒)Angular Material 建立一个网站。我现在使用Autocomplete Component,我想在建议列表中添加一个固定的页脚。如下图所示,Pinterest 将 twitter 和 google+ 添加到用户搜索建议的页脚:

我尝试在 html md-autocomplete 组件中添加页脚:

<md-content layout-padding="" layout="column">
    <form ng-submit="$event.preventDefault()">
        <md-autocomplete ng-disabled="ctrl.isDisabled" md-no-cache="ctrl.noCache" md-selected-item="ctrl.selectedItem" md-search-text-change="ctrl.searchTextChange(ctrl.searchText)" md-search-text="ctrl.searchText" md-selected-item-change="ctrl.selectedItemChange(item)" md-items="item in ctrl.querySearch(ctrl.searchText)" md-item-text="item.name" md-min-length="0" placeholder="e-mail of naam " md-menu-class="autocomplete-custom-template">
            <md-item-template>
                <span class="item-title">
                    <md-icon md-svg-icon="img/icons/octicon-repo.svg"></md-icon>
                    <span> {{item.name}} </span>
                </span>
            </md-item-template>
            <md-item-template>
                <footer><a href="">Some link</a></footer>   
            </md-item-template>
        </md-autocomplete>
    </form>
</md-content>

不幸的是,这不起作用,没有显示任何内容。 Here 是 Material Autocomplete 的工作示例。

有人知道如何在 Angular Material Autocomplete 的建议中添加固定页脚吗?欢迎所有提示!

【问题讨论】:

  • 为什么这个问题是减号?是不清楚还是别的什么
  • 您所说的“固定页脚”是指无论查询如何都会显示在列表底部的一些默认建议吗?
  • 你能显示ctrl.querySearch() 的代码吗?我有解决方案,这取决于您可能在那里做什么。
  • 我认为它与 ctrl.querySearch() 无关,因为此函数进行 http 调用。我认为必须将一些 li 元素添加到 md-autocomplete 组件中。这会生成建议列表。
  • 我不是说那里有问题...我的想法是修改该函数以始终返回结果+固定项,即使结果为空,但我不想提出这个不知道可能有什么其他影响。

标签: angularjs autocomplete angular-material


【解决方案1】:

我认为您不能向 md-autocomplete 添加其他模板。 我相信md-autocomplete 会清理选择列表,并通过重复md-item-template 来重建它

因此,最好在搜索结束时添加其他数据。

这是一个例子。 http://codepen.io/anon/pen/xGyLXP?editors=101

控制器部件

self.fixedOnes = [
  {'name'      : 'FIXED1', type: 'fixed'},
  {'name'      : 'FIXED2', type: 'fixed'},
  {'name'      : 'FIXED3', type: 'fixed'}
];

HTML部分

<md-autocomplete  ...
  md-items="item in (ctrl.querySearch(ctrl.searchText).concat(ctrl.fixedOnes))" ... >
    <md-item-template>
      <div ng-class="{fixed:item.type=='fixed'}">
        <span> {{item.name}} </span>
      </div>
    </md-item-template>
  </md-autocomplete>

------------- 编辑 -----------
因为md-item-template的内容是编译的,所以对于不同的风格和内容,你可以明智地使用ng-showng-classng-ifng-if

我已将上述答案更新为固定答案以具有不同的风格。

【讨论】:

  • 没有注入的 html 将被编译。您必须更改指令以编译“页脚”,这违背了作为功能性页脚的想法。此外,您的页脚作为一个可选择的选项。
  • 感谢您的回答。但是我如何才能为额外的项目设置与常规项目不同的样式呢?
  • 更新了我对不同风格额外物品的回答。
  • 你可以通过重写 mdAutoComplete 得到一个真正的页脚
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-05
  • 1970-01-01
相关资源
最近更新 更多