2012-04-23 3 views
0

KnockoutJS를 사용하여 관찰 가능 항목의 초기 값만 DOM 요소에 바인딩하는 명확한 방법이 있습니까?KnockoutJS - 초기 값만 바인딩

나는 당신이 관찰 할 수없는 것에 바인딩함으로써 이것을 얻을 수 있지만 오히려 단지 다른 관찰 가능한 속성의 초기 값을 유지하기 위해 불필요한 속성을 생성하지 않을 것이라고 알고 있습니다.

나는,이 시도,하지만에 소용-속성은 아직도 내가 위의 Zero21xxx에 동의하는 동안

<input type="text" id="tbName" 
    data-bind="value:name, attr: { 'data-initialnamevalue': ko.utils.unwrapObservable($data.name()) }" /> 
+2

뷰 모델에 포함되어 있으면 불필요한 것이 아닙니다. Knockout에 관한 문서에는 DOM과 데이터를 동기화 상태로 유지하기 위해서 observables 만 사용한다고되어 있습니다. 이 행동을 원하지 않는 것 같습니다. 나는 보통의 오래된 건물을 사용하고 싶다. – arb

+0

다음은'style'을위한 샘플이지만,'attr'에도 동일하게 적용됩니다 : http://jsfiddle.net/rniemeyer/3Pyun/ –

+0

감사합니다. @RPN으로 alwats 감사합니다. 직접적인 방법으로, 매트의 대답을 받아 들일 것입니다. –

답변

1

, 당신이 당신이 초기화 방법을 제공하는 사용자 지정 바인딩을 사용할 수있는 것 같아요 변경 될 때마다 업데이트됩니다 업데이트 방법은 없습니다.

다른 속성을 추가하는 것보다 노력할 가치가 있는지 확신하지 못합니다.

여기서 I의 의미는 단순한 예이다 : http://jsfiddle.net/ZkFRu/3/

제 단락 특성의 현재 값을 결합하는 두 번째 초기 값을 결합한다. 버튼을 클릭하면 속성이 증가합니다.

0

첫 번째 바인딩시 값이 주입되도록 괄호를 추가하여 관찰 가능 값이 아니라 관찰 가능 값에 직접 바인딩 할 수 있습니다. 요소가 업데이트되면 바인딩이 값에 있고 관찰 가능하지 않기 때문에 (즉, 관찰 가능 함수를 호출하여 값을 설정하는 방법을 알지 못하기 때문에) 관찰 가능을 업데이트하지 않습니다.

<input type="text" id="tbName" data-bind="value: name()" /> 
관련 문제