嗨,我有一种情况,我只需要编写一个视图而不是 viewModel,为此我在我的 html 中设置了这个组合语句:
<!-- ko compose: { view : content }-->
<!--/ko-->
内容代表从我的视图模型中观察到的。
问题是框架似乎也在尝试下载不存在且没有理由存在的视图模型。
有没有人不知道如何阻止 Durandal 寻找视图模型?
我尝试设置模型:null 但它不起作用
嗨,我有一种情况,我只需要编写一个视图而不是 viewModel,为此我在我的 html 中设置了这个组合语句:
<!-- ko compose: { view : content }-->
<!--/ko-->
内容代表从我的视图模型中观察到的。
问题是框架似乎也在尝试下载不存在且没有理由存在的视图模型。
有没有人不知道如何阻止 Durandal 寻找视图模型?
我尝试设置模型:null 但它不起作用
如果您正在使用 compose 绑定,则无法阻止 Durandal 寻找视图模型,但您可以采取一些措施来防止加载新模型:
将 Durandal 指向一个虚拟对象以用作模型(例如创建一个单例dummyModel.js
);
为您的模型使用“哑”对象(例如数组):
<!-- ko compose: { view : content, model: [] }--><!--/ko-->
使用当前模型,并关闭激活(以防止activate
在模型上被调用两次):
<!-- ko compose: { view : content, model: $data, activate: false }--><!--/ko-->
基本上,Durandal 不在乎你给它作为模型什么,只要它有东西可以使用。请注意,它仍然会将您指定的任何模型绑定到您的视图!
尝试这个
<div>
<div data-bind="compose:'views/content.html'"></div>
</div>
我不确定这是否会回答您的问题,但我确实遇到了类似的情况,我想加载没有视图模型的应用程序的视图。我创建了一个模块,它给定视图将为我加载视图。我所要做的就是覆盖加载我的视图的自定义视图模型的 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";
}
}
}