2014-09-11 17 views
6

Uwielbiam frameworki Durandal i KO, po prostu uważam je za bardziej eleganckie, prostsze rozwiązanie.Ekwiwalent Ionic Framework dla Knockout?

Jednak pod tym względem firma Google odniosła większy sukces marketingowy, a co za tym idzie, większy wybór dostosowań.

Czy na końcu KO jest coś w rodzaju równoważnego do jonowego? A może wojna już wygrała i po prostu muszę iść naprzód.

+0

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

+0

Poszukuję alternatywnego lub dostosowanego do Ionic Framework, który będzie współpracował z KO/Durandal. – Alwyn

Odpowiedz

2

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

9

TL; DR Nie znam żadnej alternatywy dla KO/Durandal, ale pójście własną drogą może być lepszym wyborem.

To, co rozumiem z jonowych, jest opakowaniem wokół rdzeniowego szkieletu hybrydowego Cordova. Jak wspomniałeś, jest zbudowany z myślą o używaniu AngularJS wszędzie. Oprócz tego, że jest opakowaniem, zapewnia również dodatkowe wtyczki.

Zasadniczo, jeśli będzie to tylko uproszczenie dla programistów NG. Nie chcę powiedzieć, że to nie jest dobra robota, ale w rzeczywistości możesz zrobić to wszystko samemu z Knockoutem & Durandal. Do tej pory stworzyłem kilka aplikacji demo z Cordova + Durandal i muszę powiedzieć, że staje się coraz lepsze, zwłaszcza narzędzia cli dostarczane przez Cordię przyspieszają rozwój. Ogromną zaletą w moim przekonaniu jest to, że masz całkowitą swobodę wyboru ram i bibliotek.

  • Wybierz cokolwiek MVWhatever JS ramy lubisz
  • Wybierz Framework GUI (spójrz na Ratchet całkiem zręczny :)
  • Odbiór wtyczki potrzebne lub pisać je samodzielnie
  • zdecydować, które CSS pochodna ty jak najlepiej albo trzymać się podstawowym, jeśli nie obchodzi
  • Zapraszamy modularyzacji i leniwy załadunku z RequireJS :)
+1

zewa, mówisz do chóru :) – Alwyn

+0

Ionic nie owija się wokół Kordoby. Jest to właściwie moduł AngularJS, który zapewnia kontrolę interfejsu użytkownika, tak jak w zestawie SDK aplikacji macierzystej. Możesz używać Cordova i KO/Durandal bez Jonic, ale będziesz musiał wykonać pracę, aby zbudować sterowanie interfejsem użytkownika (lub użyć interfejsu GUI i zbudować logikę wspierającą, aby połączyć się z KO/Durandal). –

+0

Pod maską jednak korzysta z Cordova lub PhoneGap (w zależności od scenariusza budowania), np. Ionic CLI jest zbudowany na bazie CLI Cordova. Dostarczone elementy są takie jak wymienione Moduły kątowe/Usługi/Dyrektywy wzdłuż kompozycji Sass dla GUI. Możesz używać GUI bez Angular dla innych frameworków, ale oczywiście bez interaktywności. – zewa666

Powiązane problemy