我想获得一个KnockoutJS组件模板的引用,其中组件由RequireJS加载。
这是注册:
ko.components.register("main-content", { require: "components/main-content/main-content" });
这是组件ViewModel:
define(["jquery", "knockout", "text!./main-content.html"], function($, ko, template) {
function MainContentViewModel() {
}
return { viewModel: MainContentViewModel, template: template };
});
这是组件模板:
<div class="main-content-container">
</div>
我想要做的是在我的一个JS脚本中,我希望能够获得上面提到的组件的模板并将其存储在变量中。像:
var t = require("text!../components/main-content.html");
但这似乎行不通。如何获取组件或模板的引用。我还尝试将我的脚本添加到require和依赖列表中,我添加了组件,我可能会使用它,但它会抛出错误。
附加信息
我的目录结构是这样的(省略了一些东西):
+ js
- main.js
+ components
+ main-content
- main-content.html
- main-content.js
尝试获取引用的代码位于main.js.现在,这是我用来尝试获取引用的代码:
var t = require([], "text!../components/main-content/main-content.html");
没有错误,但是当我在控制台中检查时变量t的值是:
function g(c, d, p)
我不知道它意味着什么或者用它做什么。
更新
似乎我在require调用中输入的任何字符串值都会导致函数g(c,d,p)。即使我像这样放一个空字符串:
var t = require([], "");
这可能意味着我所做的是错误的或缺乏的。