首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在ExtJS6中通过模型的convert方法访问其他商店记录?

如何在ExtJS6中通过模型的convert方法访问其他商店记录?
EN

Stack Overflow用户
提问于 2017-02-21 17:58:19
回答 1查看 1.5K关注 0票数 1

我正在尝试在一个模型中有一个类似于value (maxValue)的计算字段,其中maxValue是当前加载的所有其他记录中的最大值(考虑网格的当前页面)。

型号:

代码语言:javascript
运行
AI代码解释
复制
Ext.define('MyApp.model.Example', {
    extend: 'Ext.data.Model',
    fields: [
        {name: 'id'},
        {name: 'value'},
        {name: 'calculated_value', convert: function(value, record){
            //how to access all the records here, not just the current one?
        }}
    ]
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-21 20:06:58

模型不知道记录,它只表示单个记录,convert方法的目的是允许您转换值,或者将其他字段组合成单个值(注意,除非您定义“依赖”来引用其他字段,否则在这种情况下,只有在加载数据时才会调用转换,而不是当它所依赖的字段发生更改时调用转换)。

当您创建网格时,网格使用存储,存储包含记录的集合,这将是执行此操作的地方。

在你的存储配置中,你可以为“datachanged”添加一个监听器,它将在存储中添加或删除记录时触发,从这里你可以遍历存储中的所有记录,计算出最大值,并用它更新记录。

代码语言:javascript
运行
AI代码解释
复制
Ext.create('Ext.data.Store', {
    model: 'Example',
    proxy: {
        type: 'ajax',
        url : 'example.json',
        reader: {
            type: 'json'
        }
    },
    listeners:{
        datachanged:function(store){
            var maxValue=store.max('value');
            store.beginUpdate();
            store.each(function(record){
                record.set('calculated_value',maxValue);
            });
            store.endUpdate();
        }
    }
});

如果你是从服务器加载存储,那么你将实现一个阅读器,这可能是一个更好的地方。

代码语言:javascript
运行
AI代码解释
复制
Ext.create('Ext.data.Store', {
    model: 'Example',
    proxy: {
        type: 'ajax',
        url : 'example.json',
        reader: {
            type: 'json',
            transform: {
                fn: function(data) {
                    var maxValue=0;
                    Ext.each(data.items,function(item){
                        if(item.value>maxValue) maxValue=item.value;
                    });
                    Ext.each(data.items,function(item){
                        item.calculated_value=maxValue;
                    });
                    return data;
                },
                scope: this
            }
        }
    },
});

同样值得澄清的是,如果你真的需要复制这个值,我假设你想要以某种方式在网格内引用,可能是在渲染器中,而不是只需在存储上设置该值:

代码语言:javascript
运行
AI代码解释
复制
Ext.create('Ext.data.Store', {
    model: 'Example',
    proxy: {
        type: 'ajax',
        url : 'example.json',
        reader: {
            type: 'json'
        }
    },
    listeners:{
        datachanged:function(store){
            store.maxValue=store.max('value');
        }
    }
});

然后在您的网格列配置中,添加/更新一个渲染器(在本例中,我将值显示为maxValue的百分比):

代码语言:javascript
运行
AI代码解释
复制
{
    dataIndex:'value',
    renderer:function(value, metaData, record, rowIndex, colIndex, store, view){
        return Math.round((100/store.maxValue)*value)+'%';
    }
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42374586

复制
相关文章
sql中的convert转换数字_Convert
int16-数值范围:-32768 到 32767 int32-数值范围:-2,147,483,648 到 2,147,483,647 int64-数值范围:-9223372036854775808 到 9223372036854775808
全栈程序员站长
2022/09/21
1.8K0
sql中的convert转换数字_Convert
前端|如何在SpringBoot中通过thymeleaf模板访问页面
Thymeleaf是适用于Web和独立环境的现代服务器端Java模板引擎。Thymeleaf的主要目标是在开发工作中带来优雅的自然模板。在传统的web开发时通常使用的是jsp页面,首先需要在pom文件中引入springmvc相关的包,然后写springmvc的配置文件(包括访问资源的路径解析),之后还需再web.xml中配置访问路由。每次开发前都需要编写大量的配置文件。
算法与编程之美
2019/09/29
1.9K0
fastadmin如何在列表的操作中添加其他按钮
fastadmin默认的列表操作中只有编辑和删除按钮,如果我们需要添加其他按钮,需要先找到对应的js文件。我们需要在初始化表格中添加buutons属性,原来的js代码如下:
高久峰
2023/06/03
4.4K0
通过HTTP访问接口,工具方法
/* * 通过HTTP访问接口, * 详情,返回一个Map对象 */ public static Map<String,Object> callByHTTP(String URL,String data,String RequestMethod,boolean encrypt) throws Exception{ StringBuffer returnData=new StringBuffer(); InputStream in = null; //网络连接 logger.info(
用户1220053
2018/02/09
1.7K0
函数周期表丨其他丨值丨CONVERT
其实白茶觉得,从某些意义上来讲,应该将CONVERT函数、FORMAT函数、VALUE函数划分到一类。
PowerBI丨白茶
2021/08/31
3910
函数周期表丨其他丨值丨CONVERT
《谷歌访问助手》访问Chrome商店 Gmail 谷歌搜索
每当我向小伙伴分享超棒的Chrome插件(扩展程序)的时候, 总会有小伙伴问,从哪里下载Chrome浏览器以及Chrome扩展程序, 这篇文章就为这个问题做一个通用的回答
zhaoolee
2019/06/11
6.9K0
《谷歌访问助手》访问Chrome商店 Gmail 谷歌搜索
ContentProvider将程序中的数据暴露给其他程序访问
之前写过一篇文章,这里写链接内容讲的是如何运用ContentProvider。这次我将来演示一遍如何将程序中的数据暴露给其他程序访问。 就用我之前写过的AccountMS的数据这里写链接内容。现在我在dao目录下增加MyProvider.java文件,代码如下:
提莫队长
2019/03/01
1.4K0
ContentProvider将程序中的数据暴露给其他程序访问
Odoo 通过Javascript调用模型中自定义方法
那问题来了,如果希望在普通的javascript函数中使用上述请求功能,咋办?参考如下示例代码
授客
2023/02/26
1.3K0
进入chrome商店方法
补充更正,前面的别的方法,现在已经不可用了,大家可以在这个国内网址下载浏览器插件:
川川菜鸟
2021/10/18
2.2K0
其他服务器访问windows7的虚拟机vm中ubuntu系统的方法
因为最近在windows7的vm12中安装了ubuntu作为服务器,想让局域网内其他服务器可以访问到,捣鼓了一阵,做个总结 Vmware网络连接方式分三种,桥接方式,NAT方式,仅主机模式方式.桥接模式对应 VMnet0虚拟网络,将虚拟机看成和主机在同一个网段的另一台物理主机.本次研究结果是使用桥接方式 1 关掉windwos防火墙 控制面板-windows防火墙-打开或关闭防火墙 然后将防火墙关掉 2 修改虚拟网络编辑器 VM-编辑-虚拟网络编辑器 1)选择vmnet0 2)vmnet信息选择“桥接模式” 3)“桥接到”选择和windows一样的网卡驱动 (查看本机网卡驱动方法: 1右键无线网连接小图标。2,打开网络共享中心.3,更改设配器设置。找到自己连接的无线网,我的是Inter (R) wireless-N 7260) 4)点击确定 3 虚拟机设置为桥接模式 右键虚拟机系统-设置-网络设配器 选择vmnet0(桥接模式) 4 设置本机为静态ip 1)右键无线网连接小图标。 2)打开网络共享中心. 3)更改设配器设置。 4)找到自己连接的无线网,右键-属性-双击ICP/IPv4 5)选择使用下面的ip地址 (这里需要填写动态获取时一样的ip,查看方法:win+r 输入cmd,控制台输入ipconfig/all, 找到自己连接的网络信息) ipv4地址,子网掩码,默认网关,dns服务器填写 5 设置虚拟机系统网络 编辑网络,IPv4settings method:manual adress:和主机ip在一个网段,最后一个数字不一样就行 netmask:和本机子网掩码一样,255.255.255.0 默认网关:和本机一样 dns:和本机一样
零式的天空
2022/03/24
2.3K0
如何在Vue组件中访问Vuex store中的状态?
在Vue组件中访问Vuex store中的状态,可以通过计算属性 (computed properties) 或者直接通过$store.state来实现。
王小婷
2023/10/02
4010
如何在Python中实现高效的日志记录
日志记录是软件开发中的重要组成部分,它可以帮助我们监控程序运行状态、诊断问题和优化性能。本文将详细介绍如何在Python中实现高效的日志记录,并提供详细的代码示例。
华科云商小彭
2023/08/29
4410
如何在Python中实现高效的日志记录
如何在Python 中更优雅的记录日志?
在 Python 中,一般情况下我们可能直接用自带的 logging 模块来记录日志,包括我之前的时候也是一样。在使用时我们需要配置一些 Handler、Formatter 来进行一些处理,比如把日志输出到不同的位置,或者设置一个不同的输出格式,或者设置日志分块和备份。但其实个人感觉 logging 用起来其实并不是那么好用,其实主要还是配置较为繁琐。
Python数据科学
2019/10/15
1.1K0
如何在Python 中更优雅的记录日志?
通过getter和setter方法访问和修改
2.setter方法可以执行错误检查,比如检查数据是否合乎规范,输入的age是否小于0,直接对域操作则没这种优势
用户7999227
2021/10/08
9880
如何在CVM实例中访问对象存储
对象存储服务与客户的VPC打通,需要客户先确认在哪个子网中使用。由腾讯云工程师进行网络配置,会在客户指定的子网中配置一个vip并与对象存储打通并映射。
本地专用集群CDC
2023/04/21
3.4K0
Objective-C中通过下标的方式访问自定义数据模型中属性
      在Objective-C中,可以通过下标来访问数组中的元素,如果数组是NSMutableArray类型的可变数组,则还可以通过下标来对数组中的元素进行赋值操作。例如:
珲少
2018/08/15
1K0
解决开启代理无法访问微软商店的问题
以前对于 Windows store 使用的不多,没发现这个问题,最近使用商店后发现无法进行网络连接.原因是开启了代理.将代理关闭之后久可以正常的使用了.但是每次都手动开启关闭比较的麻烦.经过一系列的搜索之后找到了一个最终的解决方法
caoayu
2020/11/19
3.9K0
解决开启代理无法访问微软商店的问题
如何让局域网中的其他主机访问虚拟机
通常我们会在自己的电脑上安装虚拟机作为服务器测试使用,当虚拟机中的网页需要其他主机来访问使用时,需要对虚拟机做很多设置,本经验就一步步引导大家做设置。
wangmcn
2022/07/22
10K0
如何让局域网中的其他主机访问虚拟机
点击加载更多

相似问题

在与服务线程不同的线程上运行服务操作。

10

在UI线程上运行的服务中是否运行可运行的

46

在非UI线程上运行RIA服务

11

Android服务在UI线程上运行时如何处理“长时间运行”操作

12

Web服务可以在我的pc上运行,但不能在服务器pc上运行

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文