【问题标题】:a knockout "web component" is not loaded inside another component (in a SPA)淘汰赛“Web 组件”未加载到另一个组件中(在 SPA 中)
【发布时间】:2015-12-25 20:56:05
【问题描述】:

我遇到了一个小问题。

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

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

页眉和页脚保持不变。

每个页面内容(即视图模型和 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>

期间下拉组件未加载,我收到错误:

未捕获的错误:模块加载超时:components/period-dropdown/period-dropdown

我做错了什么?

感谢您的帮助

【问题讨论】:

  • 不,我没有。我看着它并改变了waitSeconds。现在我没有收到错误,但我的组件仍未加载。
  • 确保此组件在其他 tha 使用此组件之前已注册。
  • 好的,我做到了,但我还是没看到。您需要查看有关我的文件的更多信息吗?
  • 我看到的是文件已下载,即 VM 的 JS 和模板的 html 但它没有连接到它所在的页面。代码没有到达嵌套的 Ctr组件。

标签: javascript knockout.js yo


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-21
    • 2016-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多