extJs學習基礎5 理解mvvm的一個小案例


今天很是幸運,看到了一位大神的博客,學習了不少的東西。太感謝了.(滿滿的都是愛啊)

建議去學習這個大神的博客,真心不錯。

博客地址:http://blog.csdn.net/column/details/extjs5.html?&page=1 

 

首先要建立一個簡單的項目,我是使用的 Sencha Architect 3自動生成的

app下面的文件

 

在視圖文件中建立

MyViwepost.js (view文件中)

 1 Ext.define('MyApp.view.MyViewport', {
 2     extend: 'Ext.container.Viewport',
 3     alias: 'widget.myviewport',
 4 
 5     requires: [
 6         'MyApp.view.MyViewportViewModel',
 7         'MyApp.view.MyViewportViewController',
 8         'Ext.panel.Panel',
 9         'Ext.button.Button'
10     ],
11     
12     controller: 'myviewport',  // 設置會找到 MyViewportViewController.js
13     viewModel: {
14         type: 'myviewport'     // 找到 MyViewportViewModel.js
15     },
16     padding: 12,
17     layout: 'fit',
18 
19     items: [
20         {
21             xtype: 'panel',
22             //設置此配置選項添加或刪除數據綁定其他配置
23             bind: {
           //這里的 name和model中對應
24 title: '{name}', 25 }, 26 27 items: [ 28 { 29 xtype: 'button', 30 text: '測試 控制器',
              //這里的控制器和 controller文件中對應
31 handler: 'onClickButton' 32 } 33 ] 34 } 35 ] 36 37 });

myViewportViewController.js (view文件中)

 1 Ext.define('MyApp.view.MyViewportViewController', {
 2     extend: 'Ext.app.ViewController',
 3     alias: 'controller.myviewport',
 4     onClickButton: function(){
 5         Ext.Msg.confirm('Confirm', '要改變面板的title值嗎?', 'onConfirm', this);  
 6     },
 7 
 8     onConfirm: function(choice){
 9         if(choice === 'yes') {  
10                 //加入下面這一條語句  
11                 //this.getView().getViewModel().set('name' , "修改后的title");  
12                 console.log(this.getView().getViewModel().set('name','my app'));
13             } 
14     }
15 });

 

MyViewportViewModel.js (view文件中)

1 Ext.define('MyApp.view.MyViewportViewModel', {
2     extend: 'Ext.app.ViewModel',
3     alias: 'viewmodel.myviewport',
4 
5     //這個對象包含任意數據填充 視圖模型 ,然后通過視圖綁定。
6     data: {
7         name: 'app'
8     }
9 });

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM