javascript - 在 extjs View 中使用动态 getter 进行数学计算

标签 javascript extjs

我有一个窗口,我想按屏幕高度的百分比而不是静态数字来设置其高度和宽度。

我查了一下,发现我可以使用Ext.getBody().getViewSize().heightExt.getBody().getViewSize().width获取屏幕高度。我在那里很好。

然后,我使用这些路径设置高度和宽度属性并乘以任意小数:

Ext.define("Registration.view.events.details.EventDetails",{
    extend: "Ext.window.Window",
    xtype: 'eventdetails',


    layout: 'fit',
    autoShow: true,

    height: Ext.getBody().getViewSize().height * .8,
    width: Ext.getBody().getViewSize().width * .8,

...

有效。

然后,我尝试将这些小数抽象为默认配置值,然后使用动态生成的 getter 代替它们。这就是它的突破点:

Ext.define("Registration.view.events.details.EventDetails",{
    extend: "Ext.window.Window",
    xtype: 'eventdetails',


    // Creates my getter methods
    config:{
        defaultHeightPercentage: 0.8,
        defaultWidthPercentage: 0.8
    },


    layout: 'fit',
    autoShow: true,

    // This doesn't work
    height: Ext.getBody().getViewSize().height * this.getDefaultHeightPercentage(),
    width: Ext.getBody().getViewSize().width * this.getDefaultWidthPercentage(),

...

有什么原因我不能用这种方法进行数学计算吗?我尝试将整个方程放在括号中,认为可以解决问题(例如 height: ( Ext.getBody().getViewSize().height * this.getDefaultHeightPercentage() ),),但它没有。

我该如何实现这个目标。

Here's a fiddle of what I'm running into如果有帮助的话。

谢谢!

最佳答案

似乎问题不在于数学,而在于范围。 在类定义中,您不能使用 this (在函数外部)来引用您的实例。我在你的 fiddle 中尝试了以下代码,它工作得很好:

initComponent : function() {
    var me = this;

    me.height = Ext.getBody().getViewSize().height * me.getDefaultHeightPercentage();
    me.width = Ext.getBody().getViewSize().width * me.getDefaultWidthPercentage();

    me.callParent(arguments);
},

关于javascript - 在 extjs View 中使用动态 getter 进行数学计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31616387/

相关文章:

java - 使用 ExtJS 进行页面重定向/刷新

javascript - 从 ExtJS 中的 GridPanel 获取模型

testing - 用于测试 ExtJs 应用程序的最佳测试工具,可以在持续集成服务器上轻松实现自动化

ExtJS 4.1 树形面板 - 扩展树形面板会导致重复记录

javascript - 无法使用 html2canvas 捕获谷歌地图

javascript - 如何在调整屏幕大小时使 Canvas 元素响应?

javascript - 当只有一个订阅者时,为什么一个序列会被多次调用?

javascript - 如何使用 Backbone View 在下划线模板中渲染模型属性

javascript - Aurelia辅助注入(inject)?

javascript - ExtJs 与转换器的绑定(bind)(公式)