2012-10-09 4 views
0

knockout.js를 사용하려고했지만 실제로는 필요하지 않았습니다. 그러나 나는 새로운 스크린을 만들고 있으며 jquery를 말하면서 knockout.js에서 할 가치가 있는지 궁금해합니다.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는 몇 줄에 불과합니다. 마법은 바인딩입니다 :

각 입력은이 선택 될 때, 그들은 자동적으로 ko.observeableArray 내의 ViewModel에있는 days 변수에 추가 얻을 것이다 의미 data-bind="checked: days" 속성을 가지고 있습니다. 즉, 해당 확인란을보고 있다는 의미이며, 변경 사항이 발생하면 즉시 해당 확인란을 선택합니다.

우리의 summary 변수는 ko.computable (계산 가능)입니다. 이 속성의 속성은 data-bind="text: summary, visible: days().length > 0"입니다. 즉 days이 비어 있지 않거나 텍스트가 "Weekly on [weekly on list [days]"으로 정의 된 경우에만 표시됩니다.

0

저는 다양한 프로젝트에서 약 18 개월 동안 Knockout을 사용하고 있습니다. . 내 경험으로 말하면, Knockout은 양식을 상태에 묶고 그 양식을 다시 서버에 다시 버리는 데 매우 유용합니다. 제 생각에는

는, 녹아웃에 큰 단점은 다음과 같습니다 페이지로

  • 클라이언트 성능 문제/뷰 모델은 커질.
  • 클라이언트의 네트워크/AJAX 계층에 대한 기본 지원이 부족합니다.
  • 설정/학습이 약간 걸리고 JS 자산에 차지하는 공간이 작지 않습니다.

이 사용 사례의 경우 처음 두 개는 특히 취약하지 않습니다. 당신은 세번째 선수일지도 모르지만 이미 다른 곳에서 넉 아웃을 사용하고 있다면, 나는 그것을 향해 나가라고 말할 것입니다.