1
게시 된 속성이 inputValue
인 사용자 지정 폴리머 요소가 있습니다.게시 된 속성이있는 다트 폴리머 요소 : 자체 통지를 피하는 방법
구성 요소가 inputValue
을 수신 대기하고 변경하면 새 값이 내부 논리에보고됩니다.
반대 방향으로도 동일하게 수행됩니다. 요소는 내부 논리 변경 내용을 수신하고 inputValue
에 새 값을 설정합니다.
inputValue
으로 새 값을 설정하면 관찰 시스템이 모든 수신기를 알리지 만 요소 자체는 수신기입니다.
그 자체로 변경된 사항에 대해 요소에 통지하지 않으려합니다. 다음은 사용자 정의 요소 다트 코드
:@CustomTag("codemirror-input")
class CodemirrorInput extends PolymerElement {
@published
String mode;
@published
String inputValue;
CodemirrorInput.created() : super.created();
void ready() {
Map options = {
'mode': mode
};
GradeCodeMirror editor = new GradeCodeMirror.fromElement(
$['codemirror'], options: options);
onPropertyChange(this, #inputValue,(){
editor.setOption("value", inputValue);
});
editor.onChange.listen((_){
inputValue = editor.getDoc().getValue();
});
}
}
여기에서 무슨 일이 일어나고 있는지 아직도 파악하기가 어렵습니다. 당신의 코드에서'value'를 업데이트 할 수는 없습니까? 그러면 Polymer가 업데이트를 해결하도록 할 수 있습니까? 'editor.onChange.listen'을 불게하는 것은 무엇입니까? –
Codemirror는 DIV를 래핑하고 구문 강조를 제공하는 소스 코드 편집기로 만드는 외부 라이브러리입니다. JS 라이브러리의 Dart에 이식하는 방법을 사용하고 있습니다. editor.onChange.listen은 사용자가 소스 코드 편집기에서 코드를 수정할 때 codemirror 편집기에 의해 시작됩니다. – Fedy2
이 값이 'value'와 동일한가요? –