2015-04-27 92 views
0

所以,我有这样的代码Ext.js 4.1.0(遗憾的是,没有任何的jsfiddle,它只是不想在那里工作):如何在加载页面时触发Ext.History.on('change',...)?

Ext.onReady(function() { 
    var update = function() { 
     var params = sidebar.getValues(); 
     // Updating URL 
     var oldToken = Ext.History.getToken(); 
     var newToken = format_hash({ 
      name: params.name, 
     }); 
     if (newToken !== oldToken) { 
      Ext.History.add(newToken); 
     }; 
    }; 

    Ext.History.init(); 
    Ext.History.on('change', function(token) { 
     var params = parse_hash(token); 
     Ext.getCmp('sidebar_name').setValue(params.name); 
    }); 


    var sidebar = Ext.create('Ext.form.Panel', { 
     id: 'panel', 
     renderTo: 'maindiv', 
     width: 300, 
     bodyPadding: 10, 
     frame: true, 
     defaultType: 'textfield', 
     layout: { 
      type: 'vbox', 
      padding: 5, 
      align: 'stretch', 
     }, 
     items: [{ 
      id: 'sidebar_name', 
      fieldLabel: 'Name', 
      name: 'name' 
     }, { 
      text: 'Apply', 
      name: 'refresh_button', 
      xtype: 'button', 
      handler: update, 
     }], 
    }); 
}); 

我需要形式的值时,哈希更新变化。它可以工作,但不能在第一次加载页面时使用。如何在页面加载后触发更改事件?

回答

0

好的,我发现下面的解决方法。我将这个事件的处理提取到函数on_hash_change然后只是

Ext.History.on('change', on_hash_change); 
on_hash_change(Ext.History.getToken()); 
相关问题