我需要根据单击的菜单按钮动态加载div中的viewmodel。
我在我的HTML中有这个
<div data-bind="compose: activeScreen"></div>
这是我的Javascript
define(['services/logger', 'durandal/system','require'],
function (logger, system, require) {
var title = 'Development Plan';
debugger;
var VM1 = require("signoff");
var vm = {
activate: activate,
activeScreen : VM1
};
return vm;
function activate() {
return false;
}
});
但.....毫不奇怪,它不起作用!!
请帮我解决这个问题
答案 0 :(得分:1)
使activeScreen成为可观察的(例如:ko observable),然后在菜单上单击更改其值。 Durandal很多地依赖淘汰赛(或者在自己的可观察的lib上),所以玩淘汰赛以了解如何运作,然后跳进Durandal。
顺便说一下,如果你只需要在compose中加载一个html,你就不要通过require显式加载它,只需将完整路径传递给activeScreen,compose绑定将处理加载和缓存等。