Ich glaube, Sie könnten einfach Ionic CSS (wie Sie es mit Bootstrap machen) wiederverwenden, um ein mobilfreundliches Styling zu erhalten, und dann einige KO-Bindungen verdrahten, damit sie auf Benutzeraktionen reagieren.
Ein einfaches Beispiel: Stellen Sie eine Oberfläche mit Registerkarten machen wollen (ich nahm Markup von 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>
mit ionischen Sie ion-tabs nutzen würden, aber mit durandal/KO haben Sie compose
und Ansichten:
<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>
Und dann ein Belag in Ihrem vm hinzufügen:
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);
});
}
}
Es ist nur, um Ihnen eine Vorstellung von möglichen Ansatz zu geben. Schließlich sind Winkel und KO sehr ähnlich ... Und die meisten der JS-Komponenten der Ionen sind bereits in Durandal implementiert (z. B. navigation ähnelt stark Routing und Zusammensetzung).
Diese Frage ist nicht wirklich für Stack Overflow geeignet, da es keine richtige oder falsche Antwort gibt. Vielleicht möchten Sie dies auf http://programmers.stackexchange.com veröffentlichen. –
Dort bin ich auf der Suche nach einer Alternative oder Anpassung an das Ionic Framework, das mit KO/Durandal arbeiten wird. – Alwyn