0

这是我在配置对象中的一个片段:

xtype: 'fieldset',
cls:   'loginFormText',
items:[
    {
        xtype: 'timepickerfield',
        label: 'Start',
        value: this.fromTime(),
        name:  'fromTime'
    },{
        xtype: 'timepickerfield',
        label: 'End',
        value: this.toTime(),
        name:  'toTime'
    }
]

在视图的底部,我具有以下功能:

fromTime: function(){
    var fromDate = new Date();
    fromDate.setHours(12);
},
toTime: function(){
    var toDate = new Date();
    toDate.setHours(18);
}

但是我尝试用“this.fromTime()”和“this.toTime()”调用它们的方式不起作用,我该如何称呼它们?

4

1 回答 1

0

你做不到。在创建时this指的是全局 Window 对象,而不是 Sencha 类。要解决此问题,您必须在 initialize() 函数中执行此操作。例如。这应该工作......

Ext.define (MyApp.view.CoolView, {
    xtype: 'coolview',
    config: {
        layout: 'fit'
    },

    initialize: function () {

      var items = {
        xtype: 'fieldset',
        cls:   'loginFormText',
        items:[
            {
                xtype: 'timepickerfield',
                label: 'Start',
                value: this.fromTime(),
                name:  'fromTime'
            },{
                xtype: 'timepickerfield',
                label: 'End',
                value: this.toTime(),
                name:  'toTime'
            }
        ]
      }
      this.setItems(items);
    },

    fromTime: function(){
        var fromDate = new Date();
        fromDate.setHours(12);
        return fromDate;
    },
    toTime: function(){
        var toDate = new Date();
        toDate.setHours(18);
        return toDate;
    }
})

干杯,奥列格

于 2012-08-31T12:24:13.340 回答