ID 및 상태를 포함하는 개체에 바인딩 된 다음 html이 있습니다. 상태 값을 특정 색상으로 변환하려고합니다 (따라서 변환기 함수 convertStatus). 첫 번째 바인딩에서 변환기 작업을 볼 수 있지만 바인딩 목록에서 상태를 변경하면 UI 업데이트가 표시되지 않고 이후에 호출되는 convertStatus가 표시되지 않습니다. 내 다른 문제는 (... 아마도 바인딩을 통해이 값을 설정할 수 없습니다) 예상대로 작동하지 않는 첫 번째 스팬의 id 속성을 결합하려고데이터 - 윈 - 바인드 문제 : 변환기는 한 번만 실행되며 요소의 ID를 바인드 할 수 없습니다.
HTML :
<span data-win-bind="id: id">person</span>
<span data-win-bind="textContent: status converter.convertStatus"></span>
자바 스크립트 (필자는 상태 값을 수정하여 시도) : WinJS.Binding.List를
// 사람 ===
updateStatus 시스템에 변화 상태의 결과로 호출되는 함수입니다 //
function updateStatus(data) {
persons.forEach(function(value, index, array) {
if(value.id === data.id) {
value.status = data.status;
persons.notifyMutated(index);
}
}, this);
}
변환기를 사용하지 않는 값에 notifyMutated (index) work를 보았습니다.
GitHub의 프로젝트
Public repo for sample (not-working)으로 업데이트 -이 기본 데이터 세트 및 항목을 클릭하면 실행되는 기능을 가진 목록보기가 정말 기본 응용 프로그램입니다. 이 함수는 항목의 바운드 필드 중 하나를 임의 화하고 목록에서 notifyMutated (...)를 호출하여 시각적 업데이트를 트리거하려고 시도합니다. WinJS.Binding.List ({binding : true})를 정의하는 경우에도 마찬가지입니다. notifyReload()를 통해 강제로 업데이트하지 않으면 업데이트가 표시되지 않습니다. listview 요소에서 다시로드 깜박임이 발생합니다.
컨버터 발사의 결과를 항목이 변경되었습니다 (notifyMutated (...)와 함께). 나는 현재의 솔루션을 단순화시켜 어떤 것이 돋보이는 지 알아봐야 할 것이다. – ShelbyZ
나는 당신의 생각을 좋아하고 GitHub에 public repo를 추가했다.이 앱은 변환기를 사용하지 않아도 작동하는 방식이나 작동하지 않는 방식을 이해하지 못한다는 것을 보여줄 수있다. 나는 처음이 사실이라고 생각하는 경향이있다. – ShelbyZ