You can use the mapNav
other overload which takes an object as the first argument where you can add custom properties like:
router.mapNav({url: 'myPage', image: 'icon-desktop'});
router.mapNav({url: 'myPage', image: 'icon-something'});
router.mapNav({url: 'myPage', image: 'icon-somethingelse'});
And in your view you can just write:
<span class="image">
<i data-bind="css: image"></i>
</span>
Or if you want to specify real image urls you can also do that:
router.mapNav({url: 'myPage', imageUrl: 'http://server.com/myimage.png'});
<span class="image">
<img data-bind="attr: { scr: imageUrl }"></i>
</span>
Alternativly to avoid conflicts with durandal's own properties you can put your custom settings on a settings
object
router.mapNav({url: 'myPage', { settings: { image: 'icon-desktop'}});
And in your view:
<span class="image">
<i data-bind="css: settings.image"></i>
</span>