extjs5 一个容器中有几个组件公用一个控制器和一个模型

  1 Ext.define(‘TestViewModel‘, {
  2   extend: ‘Ext.app.ViewModel‘,
  3
  4   alias: ‘viewmodel.test‘, // connects to viewModel/type below
  5   constructor: function(config){
  6     //这里可以看出实例化了几次的 model
  7     console.log(config);
  8     this.callParent(config);
  9   },
 10
 11   data: {
 12     firstName: ‘John‘,
 13     lastName: ‘Doe‘
 14   },
 15
 16   formulas: {
 17     // We‘ll explain formulas in more detail soon.
 18     name: function (get) {
 19       var fn = get(‘firstName‘), ln = get(‘lastName‘);
 20       return (fn && ln) ? (fn + ‘ ‘ + ln) : (fn || ln || ‘‘);
 21     }
 22   }
 23 });
 24
 25 Ext.define(‘TestView‘, {
 26   extend: ‘Ext.panel.Panel‘,
 27   layout: ‘form‘,
 28
 29   requires: [
 30     ‘TestViewModel‘
 31   ],
 32
 33   // Always use this form when defining a view class. This
 34   // allows the creator of the component to pass data without
 35   // erasing the ViewModel type that we want.
 36   viewModel: {
 37     type: ‘test‘  // references alias "viewmodel.test"
 38   },
 39
 40   bind: {
 41     title: ‘Hello {name}‘
 42   },
 43
 44   defaultType: ‘textfield‘,
 45   items: [{
 46     fieldLabel: ‘First Name‘,
 47     bind: ‘{firstName}‘
 48   },{
 49     fieldLabel: ‘Last Name‘,
 50     bind:{
 51       value: ‘{lastName}‘
 52     }
 53   },{
 54     xtype: ‘button‘,
 55     text: ‘Submit‘,
 56     bind: {
 57       hidden: ‘{!name}‘
 58     }
 59   },{
 60     xtype: ‘demo‘
 61   }]
 62 });
 63
 64 Ext.onReady(function () {
 65   Ext.create(‘TestView‘, {
 66     renderTo: Ext.getBody(),
 67     width: 400
 68   });
 69 });
 70
 71
 72 Ext.define(‘Demo‘, {
 73   extend: ‘Ext.panel.Panel‘,
 74   layout: ‘form‘,
 75   alias: ‘widget.demo‘,
 76
 77   requires: [
 78     ‘TestViewModel‘
 79   ],
 80   // Always use this form when defining a view class. This
 81   // allows the creator of the component to pass data without
 82   // erasing the ViewModel type that we want.
 83   initComponent: function(){
 84     //this.ownerCt
 85     //var parent = this.findParentByType(‘panel‘);
 86     //console.log(parent.title);
 87
 88     var f = this.getViewModel().get(‘firstName‘);
 89     console.log(f);
 90     this.callParent(arguments);
 91   },
 92   //这个地方为空,就可以和主容器使用相同的一个model,如果你viewModel:{type: test},就相当于又
 93   //实例化了一个model
 94   viewModel: {
 95
 96   },
 97
 98   bind: {
 99     title: ‘{firstName}‘
100   }
101
102 });

/*
当一个容器中有几个组件公用一个控制器和一个模型
在组件中 使用 controller: ‘main‘时 可以容器组件共用一个,此时实例化容器时,也就是一个控制器
但是在 组件中 使用 viewModel:type: ‘main‘ 时,就需要考虑了,因为每个组件都会实例化一个
模型,如果想容器和组件共用一个模型,一个实例化。就在容器中设置viewModel:{type: ‘main‘},组件中设置 viewModel: {}, 为空就可以了
*/

时间: 2024-10-12 03:00:22

extjs5 一个容器中有几个组件公用一个控制器和一个模型的相关文章

C# ado.net基础 查询一个表中有多少行数据 在sqlsever中的一个表中

镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.------------------------------------------ 1 show my sql: 2 code first base .cs file 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using S

iOS视图控制器编程指南 --- 实现一个容器视图控制器

容器视图控制器是一种结合多个视图控制器的内容到一个单一的用户界面上的方式.容器视图控制器经常被用来使导航更方便,基于已经存在的内容创建一个新的用户界面类型.例如,在UIKit中的容器视图控制器包括UINavigationcontroller,UITabBarcontroller 和 UISplitViewcontroller,它们都可以使用户界面在不同视图部分之间的切换和导航更加的容易. 设计一个自定义的容器视图控制器 在几乎所有的方面,一个容器视图控制器就像其它任何一个内容视图控制器一样,它管

如何在cocos2d-x中使用ECS(实体-组件-系统)架构方法开发一个游戏?

引言 在我的博客中,我曾经翻译了几篇关于ECS的文章.这些文章都是来自于Game Development网站.如果你对这个架构方式还不是很了解的话,欢迎阅读理解 组件-实体-系统和实现 组件-实体-系统. 我发现这个架构方式,是在浏览GameDev上的文章的时候了解到的.很久以前,就知道了有这么个架构方法,只是一直没有机会自己实践下.这一次,我就抽空,根据网上对ECS系统的讨论,采用了一种实现方法,来实现一个. 我很喜欢做游戏,所以同样的,还是用游戏实例来实践这个架构方法.我将会采用cocos2

极简容器化交付 | 部署组件分析

之前给大家讲了构建镜像的原理,那么有了镜像之后,我们怎么样能将它快速的部署到kuberentes集群上呢? 早期,大家都习惯于使用kubernetes接口,或者cli命令行来完成这些操作,但是yaml文件语法的复杂性.大量容器和kuernetes的概念,让人难以理解,无疑成为容器化交付路上的又不障碍. 为了解决这些问题,华为云容器服务推出了向导式镜像部署,通过一步步引导.对复杂概念的屏蔽或抽象,在一定程度上降低了用户首次部署镜像的难度,但是灵活度相对较差,对于经常变更版本的场景,还是需要使用原生

设计一个中间件的访问日志组件

对任何一个系统,一个强大的日志记录功能是相当重要且必要的,根据日志的记录可以及时掌握系统运行时的健康状态及故障定位.然而作为web容器存在另外一种日志--访问日志.访问日志一般会记录客户端的访问相关信息,包括客户端ip.请求时间.请求协议.请求方法.请求字节数.响应码.会话id.处理时间等等.通过访问日志可以统计访问用户的数量.访问时间分布等规律及个人爱好等等,而这些数据可以帮助公司在运营策略上做出抉择. 如果让你来设计一个访问日志组件你会如何来设计?你应该很快就会想到访问日志的核心功能就是将信

Android 设计一个菱形形状的Imageview组件.

网上没有资料,特来请教下大神 Android 设计一个菱形形状的Imageview组件. >> android 这个答案描述的挺清楚的:http://www.goodpm.net/postreply/android/1010000007107851/Android设计一个菱形形状的Imageview组件.html

ZeroMQ——一个轻量级的消息通信组件

ZeroMQ是一个轻量级的消息通信组件,尽管名字中包含了"MQ",严格上来讲ZeroMQ并不是"消息队列/消息中间件".ZeroMQ是一个传输层API库, 更关注消息的传输.与消息队列相比,ZeroMQ有以下一些特点: 点对点无中间节点 传统的消息队列都需要一个消息服务器来存储转发消息.而ZeroMQ则放弃了这个模式,把侧重点放在了点对点的消息传输上,并且(试图)做到极致.以为消息服务器最终还是转化为服务器对其他节点的点对点消息传输上.ZeroMQ能缓存消息,但是是

【转】一个数组中有三个数字a、b、c只出现一次,其他数字都出现了两次。请找出三个只出现一次的数字。

转自:http://zhedahht.blog.163.com/ 题目:一个数组中有三个数字a.b.c只出现一次,其他数字都出现了两次.请找出三个只出现一次的数字. 分析:在博客http://zhedahht.blog.163.com/blog/static/2541117420071128950682/中我们讨论了如何在一个数组中找出两个只出现一次的数字.在这道题中,如果我们能够找出一个只出现一次的数字,剩下两个只出现一次的数字就很容易找出来了. 如果我们把数组中所有数字都异或起来,那最终的结

一个文件中有40亿个整数,每个整数为四个字节,内存为1GB,写出一个算法:求出这个文件里的整数里不包含的一个整数

4个字节表示的整数,总共只有2^32约等于4G个可能.为了简单起见,可以假设都是无符号整数.分配500MB内存,每一bit代表一个整数,刚好可以表示完4个字节的整数,初始值为0.基本思想每读入一个数,就把它对应的bit位置为1,处理完40G个数后,对500M的内存遍历,找出一个bit为0的位,输出对应的整数就是未出现的.算法流程:1)分配500MB内存buf,初始化为02)unsigned int x=0x1;  for each int j in file  buf=buf|x<<j;  e