2014-09-11 69 views
6

我喜歡Durandal和KO框架,我只是覺得它們是一個更優雅,更簡單的解決方案。離子框架相當於Knockout?

但是與谷歌角背後所享有更好的營銷成功,因此定製的更多的選擇。

現在是有相當的性質上的KO結束離子的東西嗎?或者戰爭已經勝利,我只需要繼續前進。

+0

這個問題不適合堆棧溢出,因爲沒有正確或錯誤的答案。也許你想在http://programmers.stackexchange.com上發佈這個。 – 2014-09-11 06:11:57

+0

我正在尋找替代品或定製Ionic框架,將與KO/Durandal一起使用。 – Alwyn 2014-09-11 06:12:50

回答

2

我相信只要重新使用Ionic CSS(就像使用Bootstrap一樣)來獲得適合移動設備的樣式,然後連接一些KO綁定以使其響應用戶的操作。

一個簡單的例子:假設你想使一個標籤式界面(我從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> 

隨着離子你就必須利用ion-tabs,但迪朗達爾/ KO你有compose和看法:

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

,然後添加一個摘心在你的虛擬機:

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); 
     }); 
    } 
} 

這只是給你一個可能的方法的想法。畢竟角度和KO非常相似...而且大多數離子的JS組件已經在durandal中實現了(例如navigation與路由和組合非常相似)。

9

TL; DR 不知道任何其他的KO /迪朗達爾,但會用自己的方式可能是一個更好的選擇。

我從離子明白什麼是圍繞核心科爾多瓦混合架構的包裝。正如你所提到的,它的設計思想是到處使用AngularJS。除了是一個包裝,它還提供了額外的插件。

所以基本上如果你願意,它只是NG開發人員的簡化。我不想說它做得不好,但實際上你也可以用Durandal的Knockout &來完成所有這些。到目前爲止,我已經用Cordova + Durandal構建了一些演示應用程序,並且不得不說它越來越好,特別是Cordova提供的節點cli工具可以加速開發。在我看來,採取這種方式的一大優點是您可以完全自由選擇您選擇的框架和庫。

  • 選擇何種MVWhatever JS框架您喜歡
  • 選擇你的GUI框架(看看Ratchet非常漂亮:)
  • 選擇您需要的插件或他們自己寫
  • 決定哪些CSS衍生物您最喜歡的還是堅持,如果你不將基礎護理
  • 享受模塊化和延遲加載與RequireJS :)
+1

澤瓦,你在向合唱團傳道:) – Alwyn 2014-09-11 07:21:45

+0

離子不是科爾多瓦周圍的包裝。它實際上是一個AngularJS模塊,它提供用戶界面控件,就像您在本機應用程序SDK中一樣。您可以在不使用Ionic的情況下使用Cordova和KO/Durandal,但您必須完成構建用戶界面控件(或使用GUI框架並構建支持邏輯以連接到KO/Durandal)的工作。 – 2014-09-11 23:59:29

+0

儘管它使用Cordova或PhoneGap(取決於您的構建方案),但例如Ionic CLI構建在Cordova CLI之上。提供的東西就像Angular Modules/Services/Directive沿着Sass的GUI組合一樣。您可以在沒有Angular的情況下將GUI用於其他框架,但當然沒有交互性。 – zewa666 2014-09-12 05:40:07