2012-06-27 2 views
1

저는 knockout.js의 새로운 사용자이며 지금까지 기본 사용에 깊은 인상을 받았습니다.html 입력 필드를 계산하고 사용자가 해당 필드를 수정할 수 있도록 허용

이전 필드 (yr1 비용)를 기반으로 필드 (yr2 비용)를 자동으로 계산할 수 있고 자동 계산 필드를 변경할 수 있기를 원합니다. 이 자동 계산 된 필드는 다른 계산 (Total Yr2)에 사용됩니다. 나는이 jsfiddle으로 그렇게하려고 노력했지만, 지금까지 운이 없었습니다. 이 작업을 수행하는 방법에 대한 예제의 정보를 찾을 수 없습니다.

나는 처음에는 yr2 비용을 관찰 할 수 있도록 만들려고했는데, 자동 계산이 불가능합니다. 나는 yr2 비용을 계산하려고 시도했는데, 이것은 총 Yr2가 사용자 입력으로 업데이트되는 것을 허용하지 않는다. 내가 할 수없는 일이 가능하지 않니? 나는 이것이 재무 계산 양식에서 공통적이라고 생각합니다.

+0

'return this.opYr1Hoa();'재미있는 재미있는 재미. –

답변

1

우선 변수 이름은 이해하기 쉬워야하고 의도는을 나타냅니다. 피들에 사용 된 이름처럼 둔감하거나 축약 된 이름에는 이점이 없습니다. 혼란스럽고 코드 유지 관리가 어려워집니다. 나중에 js를 축소 할 계획이라면 어쨌든 이름은 중요하지 않습니다. 나중에 코드을 읽어야한다면, 이해하기 쉬운 완전하고 이해하기 쉬운 이름을 가진 것이 대단히 도움이됩니다.

다음 단계는 두 가지 방법으로 수행 할 수 있습니다.

한 가지 방법은 가입자가 변경 후 관찰 가능 항목의 계산을 변경하는 것입니다. this, near the bottom of the page을 참조하십시오. 이 방법은 fiddle demonstrating입니다. 이 예제에서는이 메서드를 사용하는 것이 좋습니다.

참고 : 사용자가 입력을 마쳤을 때만 다시 계산되도록 valueUpdate을 떠납니다. afterkeydown을 사용하면 문제가 발생하면서 일찍 재조정됩니다. 다시 계산하려면 [Enter]을 누르십시오.

두 번째 방법은 writable observables (두 번째 머리글, 1/3 페이지 아래로)을 사용하여 computed observables에 읽기 및 쓰기 방법을 적용하는 것입니다. 나는이 방법이이 구체적인 예에 ​​적합하다고는 생각하지 않지만 링크 된 KO 문서의 예는 잘 작동하는 경우에 대한 아이디어를 제공해야합니다.

+0

감사합니다. 완벽하게 작동합니다 (구독자). 끔찍한 변수 이름에 대해 사과 드리며, 나머지 부분을 살펴볼 때주의해야합니다. – jtiger

관련 문제