我正在使用热毛巾模板,我想为每个导航路线添加不同的图像。我怎么做到这一点?目前它只使用相同的图像。
这是我的路由代码
function boot() {
router.mapNav('home');
router.mapNav('details');
router.mapNav('myPage');
log('Hot Towel SPA Loaded!', null, true);
return router.activate('home');
}
淘汰赛代码
<div id="frame">
<ul class="project-list" data-bind="foreach: router.visibleRoutes">
<li data-bind="css: { current: isActive }"><a data-bind="attr: { href: hash }" class=""
href="#"><span class="image"><i class="icon-desktop"></i></span><span class="title"
data-bind="text:name"></span></a></li>
</ul>
</div>
答案 0 :(得分:2)
您可以使用mapNav
其他重载,它将对象作为第一个参数,您可以在其中添加自定义属性,如:
router.mapNav({url: 'myPage', image: 'icon-desktop'});
router.mapNav({url: 'myPage', image: 'icon-something'});
router.mapNav({url: 'myPage', image: 'icon-somethingelse'});
在你看来,你可以写:
<span class="image">
<i data-bind="css: image"></i>
</span>
或者,如果您想指定真实图片网址,您也可以这样做:
router.mapNav({url: 'myPage', imageUrl: 'http://server.com/myimage.png'});
<span class="image">
<img data-bind="attr: { scr: imageUrl }"></i>
</span>
另外,为避免与durandal自己的属性发生冲突,您可以将自定义设置放在settings
对象上
router.mapNav({url: 'myPage', { settings: { image: 'icon-desktop'}});
在你看来:
<span class="image">
<i data-bind="css: settings.image"></i>
</span>