Materialize를 사용할 때 (원래 질문의 주석에서 분명 해짐) select 요소는 change
이벤트를 발생시키지 않습니다. jQuery change
이벤트를 청취하고 이벤트 처리기에서 CustomEvent
을 실행해야합니다. 이처럼
:
_suspendUpdate = false;
attached() {
$(this.option).material_select()
$(this.option).on('change', e => {
if (!this._suspendUpdate) {
let customEvent = new CustomEvent('change', {});
this._suspendUpdate = true;
this.option.dispatchEvent(customEvent);
this._suspendUpdate = false;
}
});
}
참고 : change
맞춤 이벤트는 jQuery를 무한 루프가 발생 자체 change
이벤트를 발생시키는 원인이 때문에 suspendUpdate
"속임수"가 필요합니다.
위의 코드 조각에 대한 뷰 템플릿 : 물론 https://gist.run/?id=4e7dd11228407e765844570409d210bd
당신이, 당신이 할 수있는 아우렐 리아와 구체화를 사용하는 경우 : 여기
<template>
<require from="materialize/dist/css/materialize.css"></require>
<div class="input-field col s12">
<select ref="option" value.bind="optionSelect">
<option value="" disabled selected>Choose your option</option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</select>
<p>Selected value: ${optionSelect}</p>
</div>
</template>
또한이 방법을 보여줍니다 gist.run입니다 또한 Materialize 브릿지를 사용하십시오. http://aurelia-ui-toolkits.github.io/demo-materialize/#/about
면책 조항 : 저는 Aurelia Materialise bridge의 제작자 중 한 명입니다.
jquery 선택기는 DOM 렌더링 후 구성 요소의'attached() {...}'이벤트에서만 사용할 수 있습니다. – JayDi
@JayDi 죄송합니다. jquery 선택기 란 무엇입니까? $ ('# xx')처럼. val()? – sibi
예, 그렇습니다. like : $ ('# dateStart'). datetimepicker ({locale : 'ru', 형식 : 'DD.MM.YYYY'}); – JayDi