따라서 폴리머에서 양방향 데이터 결합으로 두 개의 간단한 변수를 결합하면 자동으로 업데이트됩니다.
하지만지도와 목록이 다르게 작동한다는 것을 알았습니다. 맵 또는 목록 내부의 요소를 변경하면 바운드 변수가 업데이트되지 않으며 = 연산자 또는 notifyPropertyChange 만 사용하면 업데이트가 트리거됩니다.
내 문제는 두 개의 요소 E1과 E2가 있다는 것입니다. E1은 E2의 상위입니다.
// E1.dart
class E1 extends PolymerElement {
@observable List<Map> data;
dataChanged() => print(data.toString());
}
//E1.html
<...>
<template repeat="{{map in data}}">
<E2 value="{{map[identifier]}}"></E2>
</template>
</...>
따라서 E2 내부의 값이 변경되고 수동으로 데이터를 인쇄하면 값도 변경됩니다. 그러나 dataChanged () 함수는 호출되지 않습니다. 내부 값이 변경되면 데이터에 대해 notifyPropertyChange (# data, x, y)를 호출하고 싶습니다. 목록 내의 변경 사항에 대한 알림을받는 방법이 있습니까?
내 목록은 다음과 같습니다.
[
{ identifier : {x1 : y1}},
{ identifier : {x2 : y2}},
{ identifier : {x3 : y3}},
{ identifier : {x4 : y4}}
]
알림을 받고 싶은 변경 사항은 x와 y이며 새 요소가 추가 된 경우입니다. 식별자는 항상 동일한 btw입니다.
일반 List 또는 Map 대신 ObservableList 또는 ObservableMap을 사용할 수 있습니다. toObservable에 대한 호출에서 기존 List 또는 Map을 래핑하여 자동으로 생성 할 수도 있습니다. 예를 들면 :
@observable ObservableList<Map> data = toObservable([1, 2, 3]);
이러한 유형 / 기능은 폴리머로 내보내 지므로 가져 오기를 추가 할 필요가 없습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다