我在knockout中创建了一个组件并使用RequireJs调用它,然后我尝试将该组件作为独立组件并从我的视图中删除该模板,并为该模板创建一个单独的HTML文件。 这是注册组件的代码
@Scripts.Render("~/bundles/Knockout")
<script src="~/boot/require.config.js"></script>
<script src="~/Scripts/require.js"></script>
<script>
var dashBoarViewModel = ko.mapping.fromJS(@Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model)));
ko.components.register('user-details', {
require: '../koModules/UserdashBoard/Proworldz.dashBoardHeader.js'
});
ko.applyBindings(dashBoarViewModel);
</script>
在我的require.config.js文件中,我创建了一个require对象,该对象提供了RequirJs加载HTML模板所需的依赖text.js文件。 这就是它的样子 -
var require = {
baseUrl: "/",
paths: {
"text": "Scripts/text"
}
}
这是Proworldz.dashBoardHeader.js组件的外观 -
define(['text!module/Proworldz.dashBoardHeaderTemplate.html'],function(temp) {
function MyComponentViewModel(params) {
this.UserItem = params;
}
return {
viewModel: MyComponentViewModel,
template: temp
}
});
如果我尝试删除此配置文件并直接调用text.js文件,就像这样
@Scripts.Render("~/bundles/Knockout")
<script src="~/Scripts/text.js"></script>
<script src="~/Scripts/require.js"></script>
<script>
var dashBoarViewModel = ko.mapping.fromJS(@Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model)));
ko.components.register('user-details', {
require: '../koModules/UserdashBoard/Proworldz.dashBoardHeader.js'
});
ko.applyBindings(dashBoarViewModel);
</script>
未调用模板并发出错误
未捕获错误:脚本错误:文本 http://requirejs.org/docs/errors.html#scripterrormakeError @ require.js:166context.onScriptError @ require.js:1701 require.js:166 Uncaught Error:加载模块的超时:text!../ koModules / UserdashBoard / Proworldz.dashBoardHeaderTemplate.html_unnormalized2
是否必须创建require对象并调用text.js文件?我不能直接加载text.js文件吗?