2

我遇到了一个小问题。

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

我正在使用yeoman作为脚手架。

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

每个页面内容,即 viewmodel 和 html 都位于位于components目录中的目录中。

我有一个下拉组件,我想将它放在另一个组件中。由于某种原因,它没有出现。我的组件的名称是 period-dropdown。

我的组件的文件名是 period-dropdown.js 我的组件的模板(html)文件的名称是 period-dropdown.html 两者都在同一个目录 period -dropdown period-dropdown位于components目录中

这是我的组件的虚拟机:

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>

period-dropdown 组件未加载,我收到错误:

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

我究竟做错了什么?

谢谢您的帮助

4

1 回答 1

0

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

于 2015-12-26T10:36:03.140 回答