阻止Durandal寻找视图模型

时间:2014-02-22 18:35:44

标签: durandal durandal-2.0

嗨我有一种情况,我需要只为一个视图而不是一个viewModel,我已经在我的html中设置了这个组合语句:

<!-- ko compose: { view : content }-->
<!--/ko-->

内容代表我的viewmodel中的一个observable。

问题是框架似乎也试图下载不存在且没有理由存在的viewmodel。

是否有人无法阻止Durandal寻找viewModel?

我尝试过设置模型:null但是没有用

3 个答案:

答案 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";
     }
   }
}