2011-05-05 6 views
0

값을 변경할 때 레이블을 동적으로 업데이트하려는 Ext.form.Select이 있습니다.Sencha touch : 입력 레이블을 새로 고치는 방법

var musicInCarInput = new Ext.form.Select({ 
    options: [ 
     {text: "Yes", value: "yes"}, 
     {text: "Maybe", value: "maybe"}, 
     {text: "No", value: "no"} 
    ], 
    name: "music", 
    value: "maybe", 
    label: '<img src="/static/images/comfort_icons/music_maybe_small.png" />', 
    listeners: { 
     change: function() 
     { 
      musicInCarInput.label = '<img src="/static/images/comfort_icons/music_'+musicInCarInput.getValue()+'_small.png" />'; 
     } 
    } 
}); 

은 내가 라벨을 변경 한 후 doLayout() 전화를 시도했지만 너무 문서화 비록 I는 입력이 프로퍼티 '에서 doLayout을'이 없다고 말했다 해요 : 그것은 소리 단순, 그것은 일을 거부합니다.

아무도 아이디어가 없습니까?

답변

0

정답은 SenchaTouch 포럼에 realjax에서 나에게 온 :

다른 사람이 필요로하는 경우가 여기에 코드입니다 나는 '것이 부끄럽다 것을 (선택의 속성이 vee missed) labelEl은 다음과 같이 베일을 업데이트하는 데 사용할 수 있습니다.

musicInCarInput.labelEl.setHTML([your hmtl stuff]) 
0

레이블을 업데이트하는 방법을 찾지 못했기 때문에이 답변에 직접 답변하지 않으므로 추가 답변을 환영합니다. 내가 찾은 솔루션은 ID와 ID로 라벨 이미지를 가져 와서 업데이트하는 것입니다.

var musicInCarInput = new Ext.form.Select({ 
    options: [ 
     {text: "Yes", value: "yes"}, 
     {text: "Maybe", value: "maybe"}, 
     {text: "No", value: "no"} 
    ], 
    name: "music", 
    value: "maybe", 
    label: '<img id="music_input_label" src="/static/images/comfort_icons/music_maybe_small.png" />', 
    listeners: { 
     change: function() 
     { 
      el = Ext.getDom('music_input_label'); 
      el.setAttribute("src", '/static/images/comfort_icons/music_'+this.getValue()+'_small.png') 
     } 
    } 
});