관찰 가능한 배열 드롭 다운 목록에 바인딩되어 있습니다. ASP.NET MVC HTML Helpers를 통해 페이지로드시 dropdownlist가 채워지지만 observable 배열은 []로 설정되어 있으므로 모든 것을 제거합니다. 페이지로드 또는 초기 적용 바인딩에서 모든 것을 제거하지 않는 방법이 있습니까?knockout.js 페이지로드시 드롭 다운 목록을 바인딩하지 않음
0
A
답변
1
관찰 가능한 배열의 옵션을 나중에 설정하려고하는 것 같습니다 (AJAX 호출에서 아마도?). 넉 아웃에는 내장 된 방법이 없습니다. 적어도 세 가지 옵션이 있다고 생각합니다.
확실한 방법은 선택 목록 대신 관찰 가능한 배열을 작성하는 것입니다. 그런 다음 녹아웃은 올바른 일을하고 드롭 다운 목록을 채 웁니다.
- 는 빈 배열을 바인딩
options
를 래핑하지만 무시하는 사용자 지정 바인딩을 사용ko.bindingHandlers.optionsNotBlank = { update: function (element, valueAccessor, allBindingsAccessor) { var value = ko.utils.unwrapObservable(valueAccessor()); if (value.length) ko.bindingHandlers.options.update(element, valueAccessor, allBindingAccessor); } };
설정
options
동적 드롭 다운 목록에 바인딩. 이것은 게시 된 기능이 아니지만 내 보낸 녹아웃 메서드를 사용합니다. 표준data-bind
특성을 사용하는 대신ko.applyBindingsToNode
메서드를 사용하고 관찰 가능 배열을 채운 후에 바인딩 개체를 전달합니다. 그래도ko.applyBindingsToNode
번으로 전화하는 데주의해야합니다.viewModel.myArrayOfItem(newValues); if (!boundDropDown) { ko.applyBindingsToNode(document.getElementById("mydropdown"), { options: viewModel.myArrayOfItems }, viewModel); boundDropDown = true; }
편집 :
여기에 "더러운"플래그를 사용하여 의견을 기반으로 네 번째 옵션들 :
ko.bindingHandlers.optionsNotBlank = {
update: function (element, valueAccessor, allBindingsAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor()),
isDirty = element._isDirty;
if (isDirty || value.length) {
element._isDirty = true;
ko.bindingHandlers.options.update(element, valueAccessor, allBindingAccessor);
}
}
};
관련 문제
- 1. jQuery의 자동 완성 플러그인은 페이지로드시 드롭 다운 목록을 어떻게 표시합니까?
- 2. 페이지로드시 드롭 다운 값을 기본값으로 설정하는 방법
- 3. PHP의 목록을 드롭 다운
- 4. 드롭 다운 해당 항목을 선택하지 않음
- 5. PHP로 커서 삽입 페이지로드시 드롭 다운
- 6. 월/연도로 드롭 다운 목록을 채우십시오.
- 7. Watin : 드롭 다운 목록을 가져
- 8. 드롭 다운 목록을 바인딩하는 방법
- 9. 드롭 다운 목록을 int로 변환
- 10. 동적으로 드롭 다운 목록을 업데이트하십시오.
- 11. JSON 결과 목록을 드롭 다운
- 12. 드롭 다운 목록을 추가하는 방법
- 13. 다른 드롭 다운 목록으로 드롭 다운 목록을 설정하는 방법
- 14. 드롭 다운 OnSelectedIndexChanged가 실행되지 않음
- 15. 폴더의 이미지로 드롭 다운 표시하기
- 16. knockout.js/바운드 드롭 다운 목록에서 이벤트 변경에 응답하는 방법
- 17. Knockout.js 내가 Knockout.JS에서 다음과 같은 문제가 또 다른 드롭 다운
- 18. PHP/HTML 다른 드롭 다운 목록을 여는 드롭 다운 목록을 작성하는 방법은 무엇입니까?
- 19. 캐싱 방식으로 드롭 다운 목록을 채우고 첫 번째 값 앞에 각 드롭 다운 목록을 설정하십시오.
- 20. asp.net MVC 웹 응용 프로그램의 다른 드롭 다운 목록을 사용하여 드롭 다운 목록을 필터링하는 방법
- 21. CakePHP에서 달이있는 드롭 다운 목록을 확인하는 법
- 22. 드롭 다운 목록을 만드는 방법은 무엇입니까? 구글
- 23. 드롭 다운 목록을 표시하는 html 링크
- 24. Codeigniter에서 데이터베이스의 드롭 다운 목록을 채우는 방법?
- 25. Excel 2003에서 드롭 다운 목록을 만드는 방법
- 26. XML을 사용하여 드롭 다운 목록을 바인딩하십시오.
- 27. 드롭 다운 목록을 사용하여 Jquery로 숨기기/표시하기
- 28. 드롭 다운 목록을 만드는 오늘의 문제가 XML
- 29. 여러 개의 드롭 다운 목록을 바인딩하는 방법
- 30. 동적 드롭 다운 목록을 만드는 jQuery
터무니 잘 나는 몇 가지 조건 검사를 수행하여 주위를 얻었다는 적어도 말이되었다. 요소 값을 확인할 수있는 곳에서 이런 일을 할 수 있다면 좋을 것입니다. 귀하의 모든 옵션은 저에게 효과적이지 않지만 실행 가능한 솔루션이므로 대답으로 받아 들일 것입니다. –
그들은 왜 당신을 위해 일하지 않습니까? 옵션뿐 아니라 모든 바인딩을 지연 시키려고하십니까? –
1. 내 HTML에 거대한 JSON 문자열이 필요 없다. 2. 나는 어떤 점에서 관측 가능을 지울 것이기 때문에 빈 배열을 무시하고 싶지 않다. 3. 나는 그런 선택 목록을 직접 참조하고 싶지 않고, 더럽습니다. –