2013-01-17 148 views
1

我試圖做的是弄清楚如何將變量傳遞給控制器​​的視圖。在Sencha Touch中填充視圖2

例如,假設我有一個登錄屏幕,我想要顯示應用程序版本和其他一些自定義設備信息。我會如何將這些信息傳遞給視圖?

Ext.define('MyApp.view.Login', { 
    extend: 'Ext.form.Panel', 
    xtype: 'loginform', 
    config: { 
     items: [ 
      { 
       xtype: 'label', 
       cls: 'appVersion', 
       html: 'Version #:' + versionNumber 
      } 
     ] 
    } 
}); 

如果我用tpl代替html,它又會有多大的不同?

感謝您的幫助!

回答

1

,您可以查看創建這樣的過程中始終傳遞數據:

var loginPanel = Ext.create('MyApp.view.Login', { 
    ver : versionNumber // any value or data you want to pass 
}); 

爲你可能在你的視圖的配置來定義ver

Ext.define('MyApp.view.Login', { 
    extend: 'Ext.form.Panel', 
    xtype: 'loginform', 
    config: { 
    ver : '', // Initialize with empty string 
    items: [ 
     { 
      xtype: 'label', 
      cls: 'appVersion', 
      html: 'Version #:' + versionNumber 
     } 
    ] 
    } 
}); 

一旦有需要的值創造了你可以將其添加你想要的任何地方

Ext.Viewport.add(loginPanel); 
+0

謝謝!這樣可行。有沒有其他方法可以將數據/變量傳遞給控制器​​的視圖? 例如,如果您構建了一些複雜的儀表板,該怎麼辦。你有一個擁有多個視圖和一些嵌套視圖的控制器。假設您正在監控來自外部來源的數據或者在沒有用戶交互的情況下更改的數據。 我將如何反映對我的看法所做的更改? 對於模型,任何更新都會觸發「更改」事件。您可以使用更改事件來更新視圖。使用控制器監控外部事件,如何更新視圖?謝謝! – nobilist

+0

我不確定你的監控是拉或推,但無論如何你必須在回調函數中編寫代碼來將變量傳遞給任何視圖。單獨傳遞一個變量不會幫助查看它是否已經加載,所以將數據傳遞給存儲更有意義,如果它定期刷新。無論如何傳遞數據,你應該能夠在控制器'getLoginView()。config.ver = newVersion'中做這樣的事情。由於這未經測試,我建議您在控制檯中進行一些試驗和錯誤。 – ThinkFloyd

0

您可以隨時使用的PhoneGap(科爾多瓦)本:http://docs.phonegap.com/en/2.3.0/cordova_device_device.md.html#Device

此外,使用HTML或第三方物流的罰款。

+0

謝謝。我想我想問的是如何將數據從控制器傳遞到Sencha Touch 2中的視圖。我想保持我的觀點「愚蠢」。因此,例如在控制器中使用Cordova收集任何信息,然後將該信息從控制器傳遞到視圖中。在這個例子中,我說的是應用程序版本,但我的意思是一般的數據。 – nobilist