2013-12-18 15 views
0

공통보기가있는 dojox.mobile 사이트가 있습니다. 여러 개의 "단추"에 대한보기를 재사용하고 어떤 단추를 눌렀는지에 따라보기의 제목의 레이블을 변경하는 함수를 호출하려고합니다. 그러나 내부 HTML을 변경하면 뒤로 버튼이 사라집니다. setattr 함수를 사용하면 레이블이 변경되지 않습니다. 이것을 처리하는 적절한 방법은 무엇입니까? , 최선가 GET을 사용하는 헤더처럼이 문제 위젯 Dojox.Mobile.Heading의 레이블 속성 변경

<div id="MainMenu" data-dojo-type="dojox.mobile.View" data-dojo-props="selected: true" style="width: 100%; height: 100%;"> 
     <h1 data-dojo-type="dojox.mobile.Heading">View A</h1> 

     <h2 dojoType="dojox.mobile.RoundRectCategory">Select a View</h2> 
     <ul data-dojo-type="dojox.mobile.RoundRectList"> 
      <li data-dojo-type="dojox.mobile.ListItem" data-dojo-props="rightText:'Go!', moveTo: 'generic_view_x', callback:SetupViewA"> 
       View A 
      </li> 
      <li data-dojo-type="dojox.mobile.ListItem" data-dojo-props="rightText:'Go!', moveTo: 'generic_view_x', callback:SetupViewB"> 
       View B 
      </li> 
     </ul> 
    </div> 

    <div id="generic_view_x" data-dojo-type="dojox.mobile.View" style="width: 100%; height: 100%;"> 
     <h1 id="view_x_header" data-dojo-type="dojox.mobile.Heading" data-dojo-props="back:'Main', moveTo:'MainMenu',label:'test'"></h1> 

      <div id="map_canvas" style="width: 100%; height: 100%;"> 
       Some Other Stuff Here 
      </div> 


    </div> 



    <!-- configure and load dojo --> 
    <script src="./dojo/dojo.js" data-dojo-config="async:1, mblAlwaysHideAddressBar:true"></script> 

    <script> 

     require(["dojo"], function(dojo){ 

     SetupViewA = function(){ 
      // Doing it This way removes the back button 
      // document.getElementById('view_x_header').innerHTML = 'View A'; 
      // This doesn't change anything 
      dojo.setAttr("view_x_header", 'label','View A') 

     } 
     SetupViewB = function(){ 

       document.getElementById('view_x_header').innerHTML = 'View B'; 

     } 


       }) 

     require(["dojox/mobile/parser", "dojox/mobile", "dojox/mobile/deviceTheme", "dojox/mobile/compat", "dojo/domReady!"], 
       function(parser) { 
       parser.parse(); 
       }); 


    </script> 

</body> 

답변

1

는/변경 설정> 데모 ->

</링크 위젯의 속성.

당신은 사용해야 http://jsfiddle.net/theinnkeeper/Wgx8u/

+0

최고

dijit.registry.byId("view_x_header").set("label", "View B"); 

바이올린을 ::. 고마워, 고쳐. 나는 성공하기 전에 dijit.byId를 시도하고 있었다. 이전 dojo API를 언급 한 것 같아요? – user2855135

+0

예 dijit.byId는 1.7입니다. 그들은 위젯 조회를 레지스트리라는 자체 패키지로 옮겼습니다. – tik27