試圖學習Knockoutjs.i已經找到Knockoutjs自定義綁定相關的代碼,但這不是很好。什麼時候需要Knockoutjs自定義綁定
<input data-bind="value: name" />
<hr/>
<div data-bind="fadeInText: name"></div>
ko.bindingHandlers.fadeInText = {
update: function(element, valueAccessor) {
$(element).hide();
ko.bindingHandlers.text.update(element, valueAccessor);
$(element).fadeIn();
}
};
var viewModel = {
name: ko.observable("Bob")
};
ko.applyBindings(viewModel);
我只是不明白當人們去自定義綁定?
1)如果可能的話告訴我幾個情況,當自定義綁定將是選項?
2)如果有人看到代碼,那麼他們可以理解自定義綁定fadeInText和viewModel沒有關係,但它仍然工作。怎麼樣 ? 3)如果會有多個視圖模型,那麼我怎樣才能指定視圖模型名稱綁定時的綁定名稱?上面的代碼http://jsfiddle.net/rniemeyer/SmkpZ/
4)如何實現相同的輸出,而不自定義綁定的
的jsfiddle鏈路?有可能嗎?
請明智地回答我的問題。感謝
這是我寫回來的文章,可能有助於您的一些問題:http://www.knockmeout.net/2011/07/another-look-at-custom-bindings-for.html –
順便說一下@RPNiemeyer好文章。幫助我真正開始使用自定義綁定。 –
自定義處理程序的原因是什麼?純度。視圖模型不應該直接進行任何視圖操作(即DOM的東西)。它只應該操縱數據/模型本身。綁定處理程序隔離viewModel中的所有DOM操作(以及jQuery的東西),這使得它保持純淨並且可測試得多。 –