嗨我有一种情况,我需要只为一个视图而不是一个viewModel,我已经在我的html中设置了这个组合语句:
<!-- ko compose: { view : content }-->
<!--/ko-->
内容代表我的viewmodel中的一个observable。
问题是框架似乎也试图下载不存在且没有理由存在的viewmodel。
是否有人无法阻止Durandal寻找viewModel?
我尝试过设置模型:null但是没有用
答案 0 :(得分:1)
如果您正在使用撰写绑定,则无法停止Durandal查找视图模型,但您可以采取一些措施来阻止加载新模型:
将Durandal指向要用作模型的虚拟对象(例如,创建单身dummyModel.js
);
使用&#34;哑巴&#34;模型的对象(例如数组):
&lt;! - ko撰写:{view:content,model:[]} - &gt;&lt;! - / ko - &gt;
使用当前模型,并关闭激活(以防止在模型上调用activate
两次):
&lt;! - ko撰写:{view:content,model:$ data,activate:false} - &gt;&lt;! - / ko - &gt;
基本上,Durandal并不关心你将它作为模型提供的内容,只要它具有某些东西即可使用。请注意,它仍然会将您指定的任何模型绑定到视图中!
答案 1 :(得分:0)
试试这个
<div>
<div data-bind="compose:'views/content.html'"></div>
</div>
答案 2 :(得分:0)
我不确定这是否会回答您的问题,但我遇到了类似的情况,我想加载没有视图模型的应用程序的视图。我创建了一个模块,给出了视图将为我加载视图。我只需要覆盖加载我的视图的自定义viewmodel的getView函数。
//viewLoader --> it's job is to load the views which do not have any viewmodels
define(['plugins/router], function(router){
return {
getView: function() {
return "views/"+router.activeInstruction().config.file +".html";
}
}
}