Wydaje mi się, że można po prostu ponownie użyć Ionic CSS (tak jak w przypadku Bootstrap), aby uzyskać stylizację przyjazną dla urządzeń mobilnych, a następnie połączyć niektóre wiązania KO, aby reagować na działania użytkownika.
Prosty przykład: wyobraź sobie, że chcesz, aby interfejs z zakładkami (wziąłem znaczników z the docs)
<div class="tabs-striped tabs-top tabs-background-positive tabs-color-light">
<div class="tabs">
<a class="tab-item active" href="#">
<i class="icon ion-home"></i>
Test
</a>
<a class="tab-item" href="#">
<i class="icon ion-star"></i>
Favorites
</a>
<a class="tab-item" href="#">
<i class="icon ion-gear-a"></i>
Settings
</a>
</div>
</div>
Z jonowy trzeba by wykorzystać ion-tabs, ale z Durandal/KO masz compose
i widoki:
<div class="tabs-striped tabs-top tabs-background-positive tabs-color-light" data-bind="delegatedHandler: 'click'">
<div class="tabs" data-bind="foreach: tabs">
<a class="tab-item" href="#" data-bind="delegatedClick: $parent.setView.bind($parent), css: {active: isActive}">
<i class="icon" data-bind="css: icon"></i>
<span data-bind="text: title"></span>
</a>
</div>
</div>
<div data-bind="compose: {view: activeView, cacheViews: true}"></div>
a następnie dodać polewa w VM:
return {
tabs: [
{title:'Test', view: 'test.html', icon: 'ion-home', isActive: ko.observable(false)},
{title:'Favourites', view: 'favs.html', icon: 'ion-star', isActive: ko.observable(false)},
...
],
,activeView: ko.observable(),
,setView: function(view) {
this.activeView(view.view || view);
this.tabs.forEach(function(v){
v.isActive(v.view === viewName);
});
}
}
To tylko pomysł na możliwe podejście. W końcu kątowe i KO są bardzo podobne ... I większość komponentów jonowych JS jest już zaimplementowanych w durandale (np. navigation bardzo przypomina ruting i kompozycję).
To pytanie nie jest odpowiednie dla przepełnienia stosu, ponieważ nie ma prawidłowej lub błędnej odpowiedzi. Być może chciałbyś opublikować to na http://programmers.stackexchange.com. –
Poszukuję alternatywnego lub dostosowanego do Ionic Framework, który będzie współpracował z KO/Durandal. – Alwyn