我安装了霍托威尔。修改后的Shell.html如下
<section id="content" >
<!--ko compose: {view: 'master'} --><!--/ko-->
</section>在master.html文件中,我调用另一个html文件,名为search.html
<section >
<div id="SearchDetails">
<section>
<!--ko compose: {view: 'search'} --><!--/ko-->
</section>
</div>
它装载search.html很好。但是它并没有调用我的below服务,我编写了下面的search.js
define(['services/dataservice'], function (dataservice) {
var productVersionData = ko.observableArray();
var initialized = false;
var vm = {
activate: activate,
productVersionData: productVersionData
};
return vm;
function activate() {
alert(" i am hit");
if (initialized) { return; }
initialized = true;
return refresh();
}
function refresh() {
return dataservice.getProductVersionPartials(productVersionData);
}
});在我的shell.js中,我调用了如下所示的所有视图模型
define(['durandal/system', 'durandal/plugins/router', 'services/logger'],
function (system, router, logger) {
var shell = {
activate: activate,
router: router
};
return shell;
//#region Internal Methods
function activate() {
return boot();
}
function boot() {
router.mapNav('master');
router.mapNav('search');
log('Hot Towel SPA Loaded!', null, true);
return router.activate('master');
}
function log(msg, data, showToast) {
logger.log(msg, data, system.getModuleId(shell), showToast);
}
});我将调试器语句、console.log语句放在 search.js 中,但它没有以某种方式加载search.js。这就是为什么它没有调用在数据服务中定义的我的服务。有什么问题吗?
发布于 2013-06-06 18:27:57
您的问题是在内容部分的shell.html文件中所做的更改。做以下更改,您的404就会消失:
<section id="content" class="main container-fluid">
<!--ko compose: {model: 'viewmodels/master', activate: true} -->
<!--/ko-->
</section>我不熟悉您正在使用的config.js模式,但我认为您会想回到使用路由器来动态设置shell.html中的model参数,并在热毛巾模板附带的shell.js boot函数中配置激活路由。
https://stackoverflow.com/questions/16896519
复制相似问题