2012-10-09 31 views
0

我一直想嘗試使用knockout.js,但並沒有真正需要它。然而,我正在構建一個新的屏幕,並想知道是否值得在knockout.js中做jquery。Knockout.js適用於屏幕類型嗎?

enter image description here

這是谷歌日曆約會重複屏幕。現在我想要做的是非常相似他們可能的複選框,下拉列表和單選按鈕。

每個選項都會影響摘要部分。因此,如果我取消選中「F」,則摘要應該更新。

敲除會讓我更容易構建摘要部分嗎?或者他們的東西能幫助我?

回答

1

這是你可以用Knockout.js做的事情。 KO不一定是jQuery的替代品,而是更高層次的模型和視圖綁定(即VMMV)的幫助。 jQuery仍然非常適合動畫,最重要的是AJAX調用。根據你在做什麼,KO和jQuery可以很好地相處。

KO可能很難找到你的頭,但是一旦你做到了,它就非常棒,並且使某些事情變得簡單。例如,我在那裏你點擊一週中的一天,並顯示其解決只是部分:如果什麼也沒有檢查

http://codepen.io/CWSpear/pen/IbkvJ

,沒有任何顯示,但只要你開始檢查的東西,它說明了什麼天被檢查,(即Weekly on Thursday)。

JavaScript只有幾行。神奇的是在綁定:

每個輸入具有data-bind="checked: days"屬性,這意味着他們被檢查時,他們會自動地被添加到我的視圖模型,這是一個ko.observeableArraydays變量。這意味着它正在觀看這些複選框,一旦有變化,它會通知任何依賴它的東西。

其中,事實證明,我們的summary變量,這是一個ko.computable(這是一個可計算的觀察值)。它有一個屬性:data-bind="text: summary, visible: days().length > 0"。這意味着它只有在days非空時纔可見,並且文本在我們的javascript中定義爲「每週[days]的列表」

0

我已經在各種不同的項目中使用Knockout約18個月。根據我的經驗,Knockout對綁定行爲以形成狀態,然後最終將這些表單轉儲回服務器非常有用。

在我看來,大的缺點,以淘汰賽是:

  • 客戶端的性能問題爲您的網頁/視圖模型變得越來越大。
  • 缺乏客戶端中網絡/ AJAX層的內置支持。
  • 它需要一些設置/學習,並在JS資產中佔有不小的空間。

對於這個用例,你不是特別容易受到前兩個的影響。你可能是第三個,但如果你已經在其他地方使用Knockout,我會說去做。

相關問題