2012-04-20 3 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 그가 이상한 방식으로 데이터 바인딩을 섞어 놓으려고하는 것처럼 보입니다. –

+0

처음에는 약간 이상하게 보입니다. 바인딩 이름에주의해야하지만 훌륭합니다. 내 마크 업은 현재 100 % 깨끗하며 오류 로그는 훨씬 의미가 있습니다. –

+0

니스. 사용자 지정 바인딩 공급자가 유용하기 때문에 다행입니다. –