2012-04-20 75 views
0

如何使用knockoutjs調試選擇值?我嘗試使用data-bind="change: function(){debugger}似乎沒有工作。調試挖掘選擇值

<p data-bind="visible: $data[$item.settings.name]['navigation_type']() == 0" > 
    Link to Screen:<br/><select name="screen" data-bind="change: function(){debugger}, options: $item.element().screen.flow.navigable_screens, optionsText: function(item) { return item.attributes.name();}, optionsValue: 'permanent_id', value: $data[$item.settings.name].permanent_id"></select> 
</p> 

回答

1

不幸的是,淘汰賽不會像你似乎試圖使用它的方式工作。我從這一點的代碼假設:data-bind="change:你試圖綁定到jQuery的更改事件?如果是這樣,看看如何選擇列表在這裏工作:

http://knockoutjs.com/documentation/selectedOptions-binding.html

這裏:

http://knockoutjs.com/examples/simpleList.html

淘汰賽是要比jQuery的更優雅,但遵循MVVM模式,而不是使用jQuery事件。我建議對MVVM模式有更高層次的理解,並且通過所有教程進行工作http://learn.knockoutjs.com/

2

我對調試KnockoutJS使用的內聯值綁定有類似的問題。在我最近的項目,我實現了一個鬆散的結合模式爲解釋在這裏:

http://addyosmani.com/blog/understanding-mvvm-a-guide-for-javascript-developers/

可以聲明JS中所有的綁定,從而對它們進行調試。然後,您在html中引用它們的自定義數據屬性。

+0

偉大的鏈接夥計,我只是在尋找類似的東西。 +1雖然看起來他試圖以一種奇怪的方式混合數據綁定 – 2012-04-20 18:56:01

+0

它看起來似乎有點奇怪,你必須小心你的綁定名稱,但它效果很好。我的標記現在是100%清晰的,而我們的錯誤日誌將更有意義。 – 2012-04-20 19:00:07

+0

不錯。很高興自定義綁定提供程序很有用。 – 2012-04-21 02:01:36