test.js文件代码如下,定义ColumnModel
var cm=(function(){  var column1=[  
           {header:'ID',dataIndex:'id'},    
           {header:'姓名',dataIndex:'name'},    
           {header:'备注',dataIndex:'descn'},
           {header:'年龄',dataIndex:'age'}
           ]
  return{
  mycolumn : column1
  }
}())
然后另一个文件index.js
我把定义好的ColumnModel引入
var grid = new Ext.grid.EditorGridPanel({
           autoHeight : true,
  border : false,
  store : store,
  cm : cm.mycolumn,//引入刚才定义的ColumnModel
  viewConfig : {
  forceFit : true
  }
});但是浏览器提示我Uncaught TypeError: Cannot read property 'mycolumn' of undefined
这是为什么呢?
以上分开的这种写法我也是模仿别人的代码自己改的 但是不知道为什么说mycolumn未定义 求解

解决方案 »

  1.   


    var cm=(function(){  var column1= function(){
    return [
    {header:'ID',dataIndex:'id'},
    {header:'姓名',dataIndex:'name'},
    {header:'备注',dataIndex:'descn'},
    {header:'年龄',dataIndex:'age'}
      ]
      }
      return{
    mycolumn : column1
      }
    }())
    var arr = cm.mycolumn();
    alert(arr)
    试试
      

  2.   

    好的书写习惯,建立在易用的ide上,
    推荐webstorm
      

  3.   

    一楼的错误是我忘了清空chrome的缓存了=.=回二楼大哥 按你的写法仍然不行 懵了 我只想定义个列的定义不写成function应该也可以错误是:Uncaught TypeError: Object fit has no method 'setContainer' 
    google了下没有类似结果
      

  4.   

    我来一段完整代码吧:)让各位大哥看的直观些:
    test1.jsp-------------------------------------------
    Ext.onReady(function() {
    var data=[
            ['1','name1','descn1'],
            ['2','name2','descn2'],         
            ['3','name3','descn3'],
            ['4','name4','descn4'],
            ['5','name5','descn5'],
            ];
     var store=new Ext.data.Store({    
          proxy:new Ext.data.MemoryProxy(data), 
          reader:new Ext.data.ArrayReader({},[ 
          {name:'id'}, 
          {name:'name'}, 
          {name:'descn'} 
          ])       
       });
    var grid = new Ext.grid.GridPanel({
    autoHeight : true,
    border : false,
    renderTo:document.body,
    cm : cm.mycolumn,
    store:store,
    viewConfig : {
    forceFit : true
    }
    });
    });
    test2.jsp----------------------------------------------
    var cm=function(){
        
      var column1=[
            {header:'ID',dataIndex:'id'},
            {header:'姓名',dataIndex:'name'},
            {header:'备注',dataIndex:'descn'}
          ]
      
      return{
            mycolumn : column1
      }
    }()错误信息:ext-all.js:18  Uncaught TypeError: Object [object Object],[object Object],[object Object] has no method 'on'