淘汰赛“;web组件”;未加载到另一个组件内(在SPA中)

a knockout "web component" is not loaded inside another component (in a SPA)

本文关键字:组件 SPA 另一个 加载 web 淘汰赛      更新时间:2023-09-26

我遇到了一个小问题。

我有一个SPA应用程序,我正在用knockoutjs编写。

我正在使用yeoman搭建脚手架。

有一个页眉和一个页脚保持不变。

每个页面内容,即视图模型和html,都位于组件目录中的一个目录中。

我有一个下拉组件,我想把它放在另一个组件里。由于某种原因,它没有出现。我的组件名称是句点下拉列表。

我的组件的文件名是period-ropdown.js我的组件的模板(html)文件的名称是period-ropdown.html两者都位于同一目录句点下拉列表时段下拉列表位于组件目录中

这是我的组件的VM:

define('period-dropdown', ['knockout', 'text!./period-dropdown.html'], function (ko, templateMarkup) {
function PeriodDropdown(params) {
}
return { viewModel: PeriodDropdown, template: templateMarkup };

});

以下是该组件的注册方式:

 ko.components.register('period-dropdown', {require: 'components/period-dropdown/period-dropdown' });

我将该组件的html放在我的内容页面(也是一个组件)中

<period-dropdown></period-dropdown>

周期下拉组件没有加载,我得到错误:

未捕获错误:模块加载超时:组件/周期下拉列表/周期下拉菜单

我做错了什么?

感谢的帮助

好的,现在可以工作了。看起来问题是,当启动js中已经有AMD模块的注册id时,我为该模块设置了一个"id"。顺便说一句,这与组件注册的顺序无关。希望它能帮助其他遇到这个问题的人。