# 在搜索页面上使用来自另一个组件的操作

**URL:** https://meta.discourse.org/t/using-actions-from-another-component-on-search-page/251895
**Category:** Development
**Created:** [2023年一月16日 11:06 UTC](https://meta.discourse.org/t/using-actions-from-another-component-on-search-page/251895 "2023-01-16T11:06:01Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![misham](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/misham/32/282796_2.png) [@misham](https://meta.discourse.org/u/misham)
#### Post date: [2023年一月16日 11:06 UTC](https://meta.discourse.org/t/using-actions-from-another-component-on-search-page/251895/1 "2023-01-16T11:06:01Z")

</div>

您好！是否可以在搜索页面触发类别更改操作？我的情况是：顶部有一个类别列表  
 ![image](https://global.discourse-cdn.com/meta/original/4X/e/a/d/ead1f87e91925366ff63a49e7b7add9c1488d0dd.png)  
当我点击它们时，底部的结果应该根据类别而改变。我创建了一个名为 `search-categories` 的连接器，并在 `search-categories.js` 中添加了一个连接器类。但是，当我这样做时，它不起作用

```plaintext
const tt = require('discourse/components/search-advanced-options');
const Category = require("discourse/models/category");
const Component = require("@ember/component");
const I18n = require("I18n");
const { action } = require("@ember/object");
const { escapeExpression } = require("discourse/lib/utilities");
export default {
    setupComponent(args, component) {
        component.set('today', new Date());
        console.log('setup')
    },
    @action
    onChangeSearchTermForCategory(categoryId) {
        if (categoryId) {
            const category = Category.findById(categoryId);
            tt.onChangeCategory && tt.onChangeCategory(category);
            tt.set("searchedTerms.category", category);
        } else {
            tt.onChangeCategory && tt.onChangeCategory(null);
            this.set("searchedTerms.category", null);
        }

        tt._updateSearchTermForCategory();
    },
}

```

为什么它不起作用，有什么办法可以解决？我的连接器 hbs 文件

```html
<div class="custom-categories-wrapper">
    {{conditional-loading-spinner condition=loadingCategories}}
    <div class="nav-pills">
        {{#each categories as |cat|}}
            <li>
                <a data-slug="{{cat.slug}}" {{on "click" @onChangeSearchTermForCategory cat.id}} data-id="{{cat.id}}">{{cat.name}}</a>
            </li>
        {{/each}}
    </div>
</div>

```

---

<div class="post-metadata">

### Author: ![awesomerobot](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/awesomerobot/32/142900_2.png) [@awesomerobot](https://meta.discourse.org/u/awesomerobot)
#### Post date: [2023年四月17日 14:15 UTC](https://meta.discourse.org/t/using-actions-from-another-component-on-search-page/251895/2 "2023-04-17T14:15:19Z")

</div>

这是被添加到哪个插件出口？是在高级搜索页面的 `full-page-search-below-search-info` 吗？
