2015-08-19 3 views
0

У меня возникла проблема, я не могу запустить функцию контроллера на мой взгляд, поскольку это всего лишь демонстрация демонстрации.sencha не может запустить мое событие show show в контроллере

мой контроллер:

Ext.define('ylp2p.controller.viewdata',{ 
    extend: 'Ext.app.Controller', 
    config: { 
     control: { 
      viewlabel: { 
       show: 'viewlabelFn' 
      } 
     },   
     refs: { 
      viewlabel: 'label[id=datalabel]', 
     } 
    },  
    viewlabelFn: function(){ 
     alert('painted'); 
    } 
}); 

мой взгляд:

Ext.define('ylp2p.view.Main', { 
    extend: 'Ext.tab.Panel', 
    xtype: 'main', 
    requires: [ 
     'Ext.TitleBar', 
     'Ext.carousel.Carousel', 
     'ylp2p.store.datainterests', 
    ], 
    config: { 
     fullscreen: true, 
     tabBarPosition: 'bottom', 
     scrollable: 'vertical', 
     items: [ 
      { 
       title: '首页', 
       iconCls: 'home', 
       styleHtmlContent: true, 
       scrollable: true, 
       layout: 'card', 
       items: [ 
       { 
        docked: 'top', 
        xtype: 'titlebar', 
        title: 'ylp2p' 
       }, 
       { 
        xtype: 'container', 
        layout: 'vbox', 
        items:[ 
         { 
          xtype: 'carousel', 
          height: 300, 
          items: [ 
          { 
           html: 'html1', 
           style: 'background-color:#5E99CC' 
          }, 
          { 
           html: 'html2', 
           style: 'background-color: #759E60' 
          }, 
          { 
           html: 'html3', 
          } 
          ] 
         },//end carousel 
         { 
          xtype: 'label', 
          id: 'datalabel', 
          //tpl: '{store.get("data")},{store.get("earn")}', 
          store: 'interestsdata', 
          //tpl: ['总投资:{data},盈利:{earn}'], 
          html: 'hello', 
          flex: 1, 
         }//end label 
        ] 
       } 
       ]//end items 
      }, 
      { 
       title: '融资', 
       iconCls: 'locate', 
       //xtype: 'makemoney' 
      }, 
      { 
       title: '理财', 
       iconCls: 'action', 
       //xtype: 'money' 
      }, 
      { 
       title: '账户', 
       iconCls: 'user', 
       //xtype: 'user' 
      }, 
      { 
       title: '更多', 
       iconCls: 'more', 
       //xtype: 'more' 
      } 
     ] 
    } 
}); 
+0

Является ли представление экземпляром? Попробуйте добавить 'require: ['ylp2p.view.Main']' к контроллеру .. – Tarabass

+0

извините, после того, как я добавлю его. Не работает? THX Too ~~ – chen

+0

Есть ли у вас какие-либо ошибки или предупреждения в консоли? Можете ли вы создать для нас скрипку Сенча? – Tarabass

ответ

0

Попробуйте

{ 
    xtype: 'label', 
    itemId: 'datalabel', 
    //tpl: '{store.get("data")},{store.get("earn")}', 
    store: 'interestsdata', 
    //tpl: ['总投资:{data},盈利:{earn}'], 
    html: 'hello', 
    flex: 1, 
} 

и выберите как этот

Ext.define('ylp2p.controller.viewdata',{ 
    extend: 'Ext.app.Controller', 
    config: { 
     control: { 
      viewlabel: { 
       show: 'viewlabelFn' 
      } 
     },   
     refs: { 
      viewlabel: '#datalabel', 
     } 
    },  
    viewlabelFn: function(){ 
     alert('painted'); 
    }, 

    launch: function() { 
     this.getViewlabel().show(); 
    } 
}); 
+0

Простите. Не могу работать. – chen

+0

Каково значение 'this.getViewlabel()', если вы вызываете его из события 'launch' в контроллере. Вы должны добавить 'launch: function() {}' off course :) – Tarabass

+0

yes! Если я добавлю this.getViewlabel(). SetHtml ('yes') в событии запуска, он работает !, но почему он не работает в моем show event function ..: 0 – chen

0

Убедитесь, что вы добавили файл контроллера в app.js. Попробуйте ввести код ниже.

Посмотреть код

xtype: 'label', 
itemId: 'datalabel', // define item id here 
//tpl: '{store.get("data")},{store.get("earn")}', 
store: 'interestsdata', 
//tpl: ['总投资:{data},盈利:{earn}'], 
html: 'hello', 
flex: 1 

код контроллера.

Ext.define('ylp2p.controller.viewdata',{ 
    extend: 'Ext.app.Controller', 
    config: { 
     control: { 
      'main #datalabel'{ 
       show: 'viewlabelFn' 
      } 
     } 
    },  
    viewlabelFn: function(){ 
     alert('painted'); 
    } 
}); 
+0

Да, у меня есть контроллер в app.js.and, я попробовал код. это не work.help.have любые другие идеи? – chen