2014-09-03 46 views
0

在一個控制器上,我有一個處理向下鑽取的功能,將記錄的信息設置爲另一個控制器的配置變量。ExtJS 5:設置初始化的配置變量不會在從控制器設置後出現

它似乎設置他們罰款從第一個控制器。當它切換到另一個控制器時,它說這些變量是未定義的。到底是怎麼回事?

控制器處理向下鑽取:我好像

Ext.define('MyApp.controller.otherController', { 
    extend: 'Ext.app.Controller', 

    config: { 
     siteId: -1, 
     siteName: '' 
    }, 

    init: function() { 
    this.listen({ 
     component: {    
      'somePnl': { 
       beforerender: this.onBeforeRender 
      }, 

// stuff 

    onBeforeRender: function() { 
     console.log("this.siteName = " + this.siteName); 
     console.log("this.siteId = " + this.siteId); 
    }, 
    // Prints out 'undefined' 
} 

無法弄清楚爲什麼這些變量的設置都沒有:

// Set site name for Site Summary 
MyApp.app.getController('otherController').setSiteId(siteId); 
MyApp.app.getController('otherController').setSiteName(siteName); 

console.log(MyApp.app.getController('otherController').getSiteId()); 
console.log(MyApp.app.getController('otherController').getSiteName()); 
// Prints out the correct values that are supposed to be set 

其中的值不堅持其他控制器堅持

回答

0

顯然有下劃線似乎正在工作...

console.log("this.siteName = " + this._siteName); 
console.log("this.siteId = " + this._siteId); 
+1

如果是配置,請使用getter,this.getSiteName(),this.getSideId()。 – 2014-09-04 00:04:11

+0

@EvanTrimboli你是對的,昨晚我發現了。 – trama 2014-09-04 13:05:28

相關問題