2014-09-11 19 views
6

Ich mag Durandal und KO Frameworks, ich finde sie einfach eine elegantere, einfachere Lösung.Ionic Framework entspricht für Knockout?

Allerdings hatte Angular mit Google dahinter einen besseren Marketing-Erfolg und somit die größere Auswahl an Anpassungen.

Jetzt gibt es etwas von gleichwertiger Art auf dem KO-Ende zu Ionic? Oder ist der Krieg schon gewonnen und ich muss nur weitermachen.

+0

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. –

+0

Dort bin ich auf der Suche nach einer Alternative oder Anpassung an das Ionic Framework, das mit KO/Durandal arbeiten wird. – Alwyn

Antwort

2

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).

9

TL; DR Ich kenne keine Alternative für KO/Durandal, aber es könnte eine bessere Wahl sein, Ihren eigenen Weg zu gehen.

Was ich von Ionic verstehe, ist ein Wrapper um das Core Cordova Hybrid Framework. Wie Sie bereits erwähnt haben, wurde mit der Idee gebaut, AngularJS überall zu verwenden. Neben einem Wrapper bietet es auch zusätzliche Plugins.

Also im Wesentlichen, wenn Sie es wollen, ist es nur eine Vereinfachung für NG-Entwickler. Ich will nicht sagen, dass es keinen guten Job macht, aber eigentlich können Sie all das alleine mit Knockout & Durandal machen. Bisher habe ich mit Cordova + Durandal ein paar Demo-Apps gebaut und muss sagen, dass es immer besser wird, besonders die von Cordova bereitgestellten Node-Cli-Tools beschleunigen die Entwicklung enorm. Der große Vorteil meiner Ansicht nach ist, dass Sie die Freiheit haben, welche Frameworks und Bibliotheken Sie wählen.

  • Wählen Sie, was MVWhatever JS Rahmen Sie
  • Ihre GUI-Framework Wählen Sie (zu sehen Ratchet ziemlich glatt :)
  • die Plugins Wählen Sie brauchen oder schreiben sie selbst
  • Entscheiden Sie, welche CSS derivate Sie wie am besten oder zum Grund bleiben, wenn Sie dont care
  • Genießen Modularisierung und träges Laden mit RequireJS :)
+1

zewa, du predigst zum Chor :) – Alwyn

+0

Ionic ist kein Wrapper um Cordova. Es ist eigentlich ein AngularJS-Modul, das Steuerelemente für die Benutzeroberfläche wie in den nativen App-SDKs bereitstellt. Sie können Cordova und KO/Durandal ohne Ionic verwenden, aber dann müssen Sie die Arbeit ausführen, um Benutzeroberflächensteuerelemente zu erstellen (oder verwenden Sie ein GUI-Framework und bauen Sie die unterstützende Logik auf, um an KO/Durandal zu binden). –

+0

Unter der Haube, obwohl es Cordova oder PhoneGap verwendet (abhängig von Ihrem Build-Szenario), z. B. Ionic CLI ist auf Cordova CLI gebaut. Die bereitgestellten Dinge sind wie erwähnt Angular Module/Services/Directives entlang einer Sass-Komposition für GUI. Sie können die GUI ohne Angular für andere Frameworks verwenden, aber natürlich ohne die Interaktivität. – zewa666