아마도 내가 검도의 MVVM 구현의 개념을 오해하고있어,하지만 ... 내가보기 모델에 데이터 바인딩되는 간단한 검도 UI 모바일 view
있습니다데이터
var myViewModel = kendo.observable({
myEntity: null,
onViewShow: function (e) {
var bindingEntity = myStaticDataSource[0];
myViewModel.set("myEntity", bindingEntity);
}
});
myStaticDataSource
은 name
또는 description
과 같은 필드가있는 간단한 JavaScript 객체 인 정적 요소입니다.
보기 및 입력 필드 뷰 모델에 바인딩 :
사용자가 입력 필드, 해당 필드를 변경<div data-role="view" data-layout="default" data-model="myViewModel" data-bind="events: { show: onViewShow }">
<form>
<ul data-role="listview" data-style="inset">
<li>
<label>
Name
<input type="text" data-bind="value: myEntity.name" />
</label>
</li>
</ul>
</form>
</div>
(예 name
)에 데이터 바인딩 뷰 모델 개체 myEntity
갱신된다 . 하지만 : 내가 예상했던 것은 myStaticDataSource
에있는 엔티티도 업데이트되었으므로 개체를 복제하지 않기 때문입니다. 하지만 그렇지 않습니다! 그 값은 원래 값으로 유지됩니다. 왜 이런거야? Kendo의 MVVM 처리에 대해 빠진 것이 있습니까?
당신은'var bindingEntity = myStaticDataSource [0]'을 사용하여 변수에 요소를 할당하고 그 변수를 뷰에 바인딩함으로써 복제 할 수 있습니다. 그것은 당신이 말한 것과 정확하게 일치합니다. 변수'bindingEntity' (즉, myEntity')가 업데이트되고 myStaticDataSource는 업데이트되지 않습니다. – Brett
@Brett 그건 사실이 아닙니다. 'var bindingEntity = myStaticDataSource [0]'는 항목을 복제하지 않으므로 검도'.set()'에 대한 호출이 부작용입니다. – CodingWithSpike