Render a component within a Widget. (Using select-kit components within plugin code)

是的,我已经定义了它们。我会整理并推送到一个仓库。

一个演示嵌入式组件双向绑定形式的测试将非常有帮助!:pray:

1 个赞

我能够访问它,以及 scheduleRerender() 函数。在以下位置更新了测试和文档:

只是确认一下——你的 @bind 是从 discourse-common/utils/decorators 导入的吗?

1 个赞

已确认

这是仓库:GitHub - merefield/discourse-tc-bars-tag-intersection-chooser: A small widget to allow you to navigate to a topic list based on a combinations of tags

以及专门的 widget 文件:layouts-tag-intersection-widget/layouts-tag-combo.js.es6 at master · paviliondev/layouts-tag-intersection-widget (github.com)

正如所述,这仍然是 WIP(在制品)且不起作用。

(需要安装并配置 Layouts 插件才能按原样测试,但提取 widget 代码非常简单)

啊,我想这可能会有帮助:

- @onChange={{action @data.onChangeUpdateTagSet}}/\u003e
+ @onChange=@data.onChangeUpdateTagSet/\u003e

在传递“闭包操作”时,不需要 (action 辅助函数(在这种情况下,我猜它实际上会破坏东西)。

2 个赞

这似乎导致了 TypeError: this.attrs.onChange 不是一个函数

不过,也许那个助手掩盖了可用的属性?

哦,我的错,我们需要在那里加一些花括号,否则它将被解析为字符串属性。

- @onChange={{action @data.onChangeUpdateTagSet}}/\u003e
+ @onChange={{@data.onChangeUpdateTagSet}} /\u003e
1 个赞

抱歉,这会导致同样的错误?

1 个赞

您能否添加一个断点并找出 this.attrs.onChange 的值?(开发者工具中的“异常时暂停”功能可能对此有帮助)

1 个赞

@David 和我已经通过私信解决了这个问题:

非常感谢您的时间,@David

完成后我会发布 TC。

3 个赞

现在这是个东西,尽管目前完成得有些粗糙:

需要 布局插件

主题组件的仓库在此:GitHub - merefield/discourse-tc-bars-tag-intersection-chooser: A small widget to allow you to navigate to a topic list based on a combinations of tags

6 个赞

另外,此组件现在也支持右侧边栏区块!

1 个赞

FYI 该组件支持 Discourse Bars 🍻 🍸 (a sidebar framework)

2 个赞