【问题标题】:Stop Durandal from looking for the viewmodel阻止 Durandal 寻找视图模型
【发布时间】:2014-02-24 19:13:34
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: durandal durandal-2.0


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      【解决方案2】:

      试试这个

      <div>
         <div data-bind="compose:'views/content.html'"></div>
      </div>
      

      【讨论】:

      • 它似乎具有相同的效果,与您发布的唯一区别是,如果我添加views/content.html,durandal 将查看views/views/content.html
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-22
        • 2015-04-29
        • 1970-01-01
        相关资源
        最近更新 更多