2014-09-11 12 views
6

Mi piacciono i quadri Durandal e KO, li trovo semplicemente una soluzione più elegante e semplice.Equivalente Ionic Framework per Knockout?

Tuttavia Angular con Google dietro di esso aveva goduto di un migliore successo di marketing e quindi più scelta di personalizzazioni.

Ora c'è qualcosa di natura equivalente nella parte KO di Ionic? O la guerra è già vinta e ho solo bisogno di andare avanti.

+0

Questa domanda non è veramente adatta per Stack Overflow in quanto non esiste una risposta giusta o sbagliata. Forse ti piacerebbe pubblicarlo su http://programmers.stackexchange.com. –

+0

Sto cercando un'alternativa o una personalizzazione a Ionic Framework che funzionerà con KO/Durandal. – Alwyn

risposta

2

Credo che si possa semplicemente riutilizzare lo Ionic CSS (come si fa con Bootstrap) per ottenere uno stile ottimizzato per i dispositivi mobili e quindi collegare alcuni binding KO per farlo rispondere alle azioni dell'utente.

Un semplice esempio: immaginate di voler fare un interfaccia a schede (ho preso markup da 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> 

Con ionica si dovrebbe far leva ion-tabs, ma con Durandal/KO avete compose e viste:

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

e quindi aggiungere un topping nel vostro 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); 
     }); 
    } 
} 

E 'solo per darvi un'idea di un possibile approccio. Dopo tutto, angolare e KO sono molto simili ... E la maggior parte delle componenti JS di ionic sono già implementate in durandal (ad esempio, navigation ricorda da vicino routing e composizione).

9

TL; DR Non so nessuna alternativa per KO/Durandal ma andare per la propria strada potrebbe essere una scelta migliore.

Quello che ho capito da Ionic è un involucro attorno al core framework cordova ibrido. Come hai detto, è costruito con l'idea di usare AngularJS ovunque. Oltre ad essere un wrapper fornisce anche plugin aggiuntivi.

Quindi in sostanza se lo si desidera è solo una semplificazione per gli sviluppatori di NG. Non voglio dire che non sta facendo un buon lavoro, ma in realtà puoi fare tutto da solo con Knockout & Durandal. Finora ho creato alcune app demo con Cordova + Durandal e devo dire che sta migliorando sempre di più, soprattutto gli strumenti di cli cli del nodo forniti da Cordova accelerano molto lo sviluppo. Il grande vantaggio a mio avviso è che hai la completa libertà di quali Framework e Librerie scegli.

  • Scegli quello framework JS MVWhatever gradite
  • Scegliete il quadro GUI (un'occhiata a Ratchet piuttosto liscia :)
  • Scegli i plugin necessari o scrivere da soli
  • Decidere quale derivato CSS come migliore o attaccare alla base se non si preoccupano
  • Godetevi modularizzazione e lazy loading con RequireJS :)
+1

zewa, stai predicando al coro :) – Alwyn

+0

Ionic non è un involucro attorno a Cordova. In realtà è un modulo AngularJS che fornisce controlli dell'interfaccia utente come quelli degli SDK dell'app nativi. Puoi usare Cordova e KO/Durandal senza Ionic, ma poi dovrai fare il lavoro per costruire i controlli dell'interfaccia utente (o usare una struttura GUI e costruire la logica di supporto da legare a KO/Durandal). –

+0

Sotto il cofano usa Cordova o PhoneGap (a seconda dello scenario di costruzione), ad esempio Ionic CLI è costruito sopra Cordova CLI. Le cose fornite sono come menzionati i moduli angolari/servizi/direttive lungo una composizione Sass per la GUI. È possibile utilizzare la GUI senza Angular per altri Framework, ma ovviamente senza l'interattività. – zewa666

Problemi correlati