2015-01-31 7 views
0

나는 onyx.Picker를 가지고 있는데, 선택 전에 "Click to Select"버튼이 표시되어 사용자에게 조치를 요구합니다. 예상되는 동작대로 사용자가 옵션을 선택하면 다시 "클릭하여 선택"디스플레이로 되돌릴 수 없습니다. 그러나 프로그래밍 방식으로 양식을 다시 설정할 수 있어야합니다.이 경우 피커는 다시 원래 상태로 되돌려 야합니다.onyx.Picker를 미리 선택된 상태로 재설정하는 방법

this.$.PickerName.setSelected(null)을 호출하여 선택 옵션을 제거 할 수 있다는 것을 알아 냈습니다.하지만 UI는 예상대로 '클릭하여 선택'디스플레이로 되돌아 가지 않습니다. 피커를 완전히 재설정하려면 어떻게해야합니까?

바이올린 : 내가 아는 한http://jsfiddle.net/trex005/2amLu1r4/

답변

1

, 피커에 setSelected()은 당신이 그렇게 할 것입니다 null를 통과, 그것은 당신이 동적으로 설정하려는 제어 (피커의 clientControls)에 대한 참조를 통과 할 것으로 예상 아무것도. 항목을 선택하면 항목 목록이 닫히지 만 항목은 선택된 상태로 유지되고 pickerButton은 선택한 항목을 표시합니다. 그래서, 당신이해야 할 일은 이것뿐입니다. this.$.pickerButton.setContent('Click to Select'); 이것은 pickerButton 내용을 재설정합니다. 도움이

http://jsfiddle.net/scrs3Le5/1/

enyo.create({ 
components: [{ 
    kind: "onyx.PickerDecorator", 
    name: "DecoratorName", 
    components: [{ 
     name:'pickerButton', 
     style: 'min-height:2.5rem;min-width:330px;', 
     content: "Click to Select" 
    }, { 
     kind: 'onyx.Picker', 
     name: 'PickerName', 
     components: [ 
      {content: "Is broken"}, 
      {content: "Is not cool"}, 
      {content: "Is very very very very very very very cool!"} 
     ] 
    }] 
}, { 
    kind: 'Button', 
    ontap: 'ResetPicker', 
    content: 'ResetPicker' 
}], 
ResetPicker: function() { 
    //this.$.PickerName.setSelected(null); 
    this.$.pickerButton.setContent('Click to Select'); 
}, 
rendered: function() { 
    this.inherited(arguments); 
} 
}).renderInto(document.body); 

희망!

+0

예, 도움이됩니다. 그러나 "선택을 클릭하십시오"실제로 표시되어 있지만 선택기 실제로 이전에 선택한 컨트롤이 선택되어 있습니다. 그래서 당신은 여전히 ​​그 부분을 고치기 위해 당신이 주석 처리 한 라인이 필요합니다. – trex005

+1

리셋 메서드를 추가하기 위해 끌어 오기 요청을 제안했지만 Picker는 PickerButton의 기본 콘텐츠를 유지하지 않습니다. 아마도 피커의 reorg가 필요합니다. – Pre101