zoukankan      html  css  js  c++  java
  • 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 });
  • 相关阅读:
    详解javascript的深拷贝与浅拷贝
    fis3+vue+pdf.js制作预览PDF文件或其他
    那一年,2020
    H5移动端IOS/Android兼容性总结,持续更新中…
    浏览器里点击复制到剪贴板的小方法
    elementUI upload 对图片的宽高做校验
    CSS实现核辐射警告标志
    github常用命令
    偶遇vue-awesome-swiper的坑
    gauge+python+vscode搭建自动化测试框架
  • 原文地址:https://www.cnblogs.com/shaoshao/p/4108315.html
Copyright © 2011-2022 走看看