2016-12-06 8 views
1

Ember Power Select로 검색을 실행하기 전에 선택 상자를 닫으려고합니다. 사용자가 목록을 붙여 자동으로 선택한 항목을 설정하면 사용자가 찾고있는 내용을 알고 있다고 가정합니다.Ember Power 선택 - 닫기 방법 선택 EPS

select.actions.close()을 사용하려고했지만 onClose() 이벤트와 관련이있는 것 같습니다. 나 또한 속성을 사용하려고 시도 opened하지만 그것을 변경 어떤 차이를 보여주지 않았다.

내 구성 요소

{{#power-select-multiple 
     renderInPlace=true 
     search=(action "mySearch") 
     selected=selected_item 
     onchange=(action (mut selected_item)) 
     oninput=(action "checkPastingMultipleElements") 
     opened=checkSelect 
     as |name| 
}} 
    {{name}} 
{{/power-select-multiple}} 

내 행동

checkPastingMultipleElements(text, select) { 
     this.set('selecteded_item', [text]); 
     // error 
     // select.actions.close() 

     // does nothing 
     // if (text.length === 4) { this.set('checkSelect', false); }    

     return false; // if true, it executes the search 
} 

답변

3

귀하의 초기 추측은 select.actions.close이 가능하여, 바로,하지만 당신은 이중 렌더링 문제를 방지하기 위해 runloop에이 대기열해야합니다.

또한 원하는 것은 값을 선택하고 선택을 닫는 것입니다. select.actions.choose은 원하는 것입니다.

checkPastingMultipleElements(text, select) { 
    Ember.run.scheduleOnce('actions', null, select.actions.choose, [text]); 
    } 
+1

우선이 놀라운 애드온을 개발해 주셔서 감사합니다. 둘째, 대답을 주셔서 감사합니다. close()를 사용해야하는 이유는 텍스트를 여러 선택 항목으로 분할해야하기 때문입니다. 이 방법은 내가 할 수있는'this.set ('selected_item', text.split ("")); – mk2

+0

또한, 나는 (선택을 사용하여) 원래 답변으로, 그 텍스트를 삭제할 때마다 오류가 throw됩니다 " 어설 션 실패 : \'{{power-select-multiple}} \'백 스페이스를 사용하여 옵션을 제거하는 옵션이 문자열이 아닌 경우 \'searchField \'가 필요합니다. – mk2

+0

네, 맞습니다. 예를 들면 다음과 같습니다 : {{{power-select-multiple searchField = "name"}}'. 이것은 내가 문서화가 이것을 언급하지 않는다는 것을 깨닫게했다. 나는 그것을 업데이트해야한다. –