2012-04-06 5 views
2

저는 Sencha 2의 멍청한 놈입니다. 버튼을 클릭 할 때 새로운보기를 렌더링하는 방법을 찾고 있습니다. 특히,이보기는 홈버튼을 클릭하면 새로운보기가 렌더링됩니다.

Ext.define("Blog.view.Home", { 
    extend:'Ext.Panel', 
    xtype:'homepanel', 


    config:{ 
    iconCls:"home", 
    title:"Home", 
    items:[ 
     { 
     defaults:{ 
      iconMask:true 
     }, 
     xtype:'toolbar', 
     title:'Recent Blogs', 
     docked:'top', 
     items:[ 
      { 
      id:'newBlog', 
      xtype:'button', 
      iconCls:'add', 
      handler:function() { 
       //What do I do here? 
      } 
      } 
     ] 
     }, 

     { 
     html:"Recent Blogs" 
     } 
    ] 
    } 
}); 

를 불렀다 그리고 그 버튼을 클릭 할 때, 새로운 뷰를 렌더링합니다. 나는 내가 어떻게 그런 일을 할 지 확신하지 못한다. 누군가 포인터를 줄 수 있습니까? 이 작업을 수행하는 가장 좋은 방법입니까? 컨트롤러로 옮겨야합니까? 그렇다면 어떤 이벤트를 듣고해야합니까?

답변

5

나는 그것을 할 방법 (나는 또한 배우고) 예를 들어, 내 버튼의 재산 '행동'을 정의한다 :

{ 
    xtype: 'button' 
    action: 'doSomething', 
} 

내 컨트롤러의 제어 구성의 이벤트를 처리 :

control: { 
    'button[action=doSomething]' : { 
    tap: function() { 
     getMainView().push(...); 
    } 
} 

당신이 NavigationView를 사용하는 경우 핸들러에서 새보기를 밀어하거나 직접 ViewPort에 새보기를 추가 할 수 있습니다.

희망이 있습니다.

+0

이 getMainView() 생성 방법? 나는 그것을 사용하는 것처럼 보일 수 없다. – denniss

+0

nevermind 나는 그것을 할 방법을 발견했다. 덕분에 – denniss

+0

@ denniss 나는 같은 getMainView() 문제가 있습니다. 어떻게 그걸 해결 했니? – Squirrl

4

Sencha Touch 2 (MVC 패턴을 따름)에서이 작업을 수행하는 가장 좋은 방법은 버튼에 대한 참조를 정의하고 컨트롤러에서 제어 기능을 사용하는 것입니다. 예를 들어 : 자세한 내용은

refs:{ 
button_which_renders_a_new_view: '#newBlog' //create a reference to your button 

control: { 
button_which_renders_a_new_view: 'create_a_new_view' 
} 

create_a_new_view: { 
// do whatever you want here 
} 

,의이 좀 더 자세히 살펴 보겠습니다 : http://docs.sencha.com/touch/2-0/#!/api/Ext.app.Controller

+0

여기에 새 뷰를 만들고 표시하는 방법은 무엇입니까? – denniss

+0

가장 간단한 방법은 create_a_new_view 함수 안에 간단한 패널을 만드는 것입니다 :'create_a_new_view : {Ext.create ('Ext.Panel', {html : 'my panel'});}' –

관련 문제