【发布时间】:2014-06-02 20:39:35
【问题描述】:
我有这样的 Shell html
<div data-bind="compose: { model: 'ui/user/viewmodels/header', view: 'infoveave/user/views/header'}"></div>
<div class="container-fluid page-host">
<!--ko compose: {
model: router.activeItem,
afterCompose: router.afterCompose,
transition:'entrance'
}--><!--/ko-->
</div>
和 shell js 一样
define(function(require) {
var router = require('durandal/plugins/router'),
system = require('durandal/system'),
return {
router: router,
activate: function () {
var self = this;
router.mapAuto('ui/user/viewmodels');
system.log('Sheel Activate Called');
return router.activate('dashboard');
}
};
});
问题是标题上的激活函数没有被调用,但是仪表板上的那个被调用了,我必须在标题中获取一些 ajax 内容并绑定它,我该如何实现这一点
我想保持这个逻辑分开,因为我不希望我的 shell 有这个逻辑
作为参考我的标题(为了简化我已经将我的复杂模型转换为一个简单的 observable
define(function (require) {
var router = require('durandal/plugins/router'),
system = require('durandal/system');
this.userInfo = ko.observable('');
return {
router: router,
activate: function () {
system.log('Got Called Now');
//do some ajax stuff here and update userinfo
}
};
});
header html 最简单的形式是
<span class="dropdown-notif" data-bind="text: userInfo"></span>
【问题讨论】:
标签: durandal