2015-04-02 77 views
0

我正在通過requireJS,數據加載,格式和顯示,但在此之後沒有任何工作,排序,行選擇,分頁等數據加載到jqGrid網格工作完美如果我沒有requireJS初始化jqGrid。jqGrid使用requireJS - 網格加載,但不起作用

RequireJS配置片斷:

"jqGrid": "jqGrid/jquery.jqGrid.min", 
"grid-locale": "jqGrid/i18n/grid.locale-en", ... 
shim: { 
    "jqGrid": ["grid-locale", "jquery-ui"] 
} 

一段JavaScript代碼:

如果
define(["jquery", "httpUtils", "jqGrid"], 
function ($, httpUtils, jqGrid) { 
    window.jqGrid = jqGrid; 

    var myViewModel = function() { 
     var data = httpUtils.httpSyncGet('xxx'); 
     var grid = $('#index').jqGrid({ 
      colNames: ['ClientIdentifier'], 
      colModel: [ 
       { name: 'ClientIdentifier', width: "150pt" } 
      ], 
      datastr: data, 
      datatype: 'jsonstring', 
      rowNum: 25, 
      rownumbers: true, 
      height: 500, 
      viewrecords: true, 
      width: 1100, 
      shrinkToFit: false 
     }); 
    }; 

    return myViewModel; 
}); 

對不起的代碼不是很全面,我不得不從一個大的項目拿出片段。我只是對jqGrid完成加載的原因感到好奇,但不知何故「卸載」了它的所有功能。在控制檯中也沒有javascript錯誤。

回答

0

我想你錯過了一些模塊和依賴關係。下面是我工作(並且也從一個更大的項目修剪出):

require.config({ 
    baseUrl: "Scripts/TypeScript", 
    paths: { 
     jquerygrid: "../jquery.jqGrid.src", 
     jqueryui: "../jquery-ui-1.11.4", 
     jqgridlocale: "../i18n/grid.locale-en", 
     jqgrid: "../jquery.jqGrid.min" 
    }, 
    shim: { 
     jqueryui: { 
      deps: ["jquery"] 
     }, 
     uigrid: { 
      deps: ["jqueryui"] 
     }, 
     jqgrid: { 
      deps: ['jqueryui', 'jqgridlocale'] 
     }, 
     jqgridlocale: { 
      deps: ['jqueryui'] 
     } 
    } 
}); 

我從這個答案改編上面的代碼:requirejs jquery multiple dependent non module jquery plugins like jquery-ui and jqGrid,其中涉及更復雜的情形,但我也對您有用。