0

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

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

内容代表从我的视图模型中观察到的。

问题是框​​架似乎也在尝试下载不存在且没有理由存在的视图模型。

有没有人不知道如何阻止 Durandal 寻找视图模型?

我尝试设置模型:null 但它不起作用

4

3 回答 3

1

如果您正在使用 compose 绑定,则无法阻止 Durandal 寻找视图模型,但您可以采取一些措施来防止加载新模型:

  • 将 Durandal 指向一个虚拟对象以用作模型(例如创建一个单例dummyModel.js);

  • 为您的模型使用“哑”对象(例如数组):

    <!-- ko compose: { view : content, model: [] }--><!--/ko-->

  • 使用当前模型,并关闭激活(以防止activate在模型上被调用两次):

    <!-- ko compose: { view : content, model: $data, activate: false }--><!--/ko-->

基本上,Durandal 不在乎给它作为模型什么,只要它有东西可以使用。请注意,它仍然会将您指定的任何模型绑定到您的视图!

于 2014-02-24T06:38:48.467 回答
0

尝试这个

<div>
   <div data-bind="compose:'views/content.html'"></div>
</div>
于 2014-02-22T19:48:44.107 回答
0

我不确定这是否会回答您的问题,但我确实遇到了类似的情况,我想加载没有视图模型的应用程序的视图。我创建了一个模块,它给定视图将为我加载视图。我所要做的就是覆盖加载我的视图的自定义视图模型的 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";
     }
   }
}
于 2014-02-24T11:07:18.780 回答