하위 구성 요소에서 상위 구성 요소로, 그리고 하위 구성 요소로 왕복하는 데 데이터를 가져올 수 없습니다.중첩 된 폴리머 맞춤 구성 요소 데이터 바인딩
나는 간단한 중첩 구성 요소 테스트 베드를 만들었습니다. 이것은 텍스트 입력 (X)을 취하고 (입력 직후 P)를 밖으로 에코
<link rel="import" href="../packages/polymer/polymer.html">
<polymer-element name="child-comp" attributes="x y">
<template>
<input type='text' value='{{x}}'/>
<p>-x={{x}}-</p>
<p>list:
<template repeat='{{y}}'>-{{ }}-</template>
</p>
</template>
<script type='application/dart'>
import 'package:polymer/polymer.dart';
@CustomTag('child-comp')
class ChildComp extends PolymerElement {
@observable var x;
@observable var y;
ChildComp.created() : super.created();
}
</script>
</polymer-element>
: 여기 자식이다. 또한 x를 자식 컨트롤에서 반복하여 자식 컨트롤에서 반복해야하는 목록 (y)에 추가합니다. 여기
는 부모 구성 요소입니다<link rel="import" href="../packages/polymer/polymer.html">
<link rel="import" href="../components/child_comp.html">
<polymer-element name="top-comp">
<template>
<child-comp x='{{s}}' y='{{t}}'></child-comp>
</template>
<script type='application/dart'>
import 'package:polymer/polymer.dart';
@CustomTag('top-comp')
class TopComp extends PolymerElement {
@observable String s = '1234';
@observable List<String> t = ['A', 'B', 'C'];
TopComp.created() : super.created();
sChanged(oldVal, newVal) {
t.add(newVal);
}
}
</script>
</polymer-element>
아이부터 부모의 작품과 변화는 올바르게 목록에 추가됩니다. 그러나 목록은 자식에게 전달되지 않는 것처럼 보입니다. DOM은 결코 업데이트되지 않습니다.
는 내가 장식의 가능한 모든 조합을 시도했다, 그러나 아마 대답은
보조 노트 .. 바인드 = 구문의 변형에 있습니다 데코레이터에 대한 권위있는 업데이트 된 설명서가? 검색은 다양한 고대의 참고 문헌을 보여줍니다.
이렇게했습니다. 매우 감사. 이걸 어떻게 발견했는지 기억하니? 데코레이터가 적용될 때 어떤 일이 발생하는지 설명하는 것이 있습니까? – timecc
배운 이래로 오랜 시간이 걸렸습니다. 어디서 왔는지 모르겠습니다. 그러나 @observable은 List에 대한 참조가 PropertyChanged 이벤트를 던지게하고 toObservable()은 List 또는 Map을 가져오고 내부 요소에 대해 동일한 작업을 수행하므로 List 참조를 변경하지 않는 요소를 변경하면 PropertyChanged 이벤트가 발생합니다 . 근본적으로, 그게 어쨌든. – montyr75