2015-06-20 83 views
0

我想創建jqxGrid(JQWdidgets)使用angularjs指令。我試圖訪問指令中提到的網格ID,因此試圖使用函數jqxGrid()在控制器中設置一些網格屬性。但我得到以下錯誤

TypeError: $(...).jqxGrid is not a function 

我有一個在git項目的設置和項目有gulp文件。 我添加了gulp任務來加載jqwidgets的依賴關係。

gulp.task('vendorScripts', function() { 
    return gulp.src([ 
      'bower_components/**/dist/jquery.js', 
      'bower_components/**/assets/javascripts/bootstrap.js', 
      'bower_components/**/angular.js', 
      'bower_components/**/angular-route.js', 
      'bower_components/**/highcharts.js', 
      'bower_components/**/modules/exporting.js', 
      'bower_components/**/release/angular-ui-router.min.js', 
      'bower_components/**/ui-bootstrap-tpls.js', 
      'bower_components/**/dist/jquery.min.js', 
      'bower_components/**/jqwidgets/jqxcore.js', 
      'bower_components/**/jqwidgets/jqxdata.js', 
      'bower_components/**/jqwidgets/jqxbuttons.js', 
      'bower_components/**/jqwidgets/jqxscrollbar.js', 
      'bower_components/**/jqwidgets/jqxmenu.js', 
      'bower_components/**/jqwidgets/jqxcheckbox.js', 
      'bower_components/**/jqwidgets/jqxlistbox.js', 
      'bower_components/**/jqwidgets/jqxdropdownlist.js', 
      'bower_components/**/jqwidgets/jqxgrid.js', 
      'bower_components/**/jqwidgets/jqxgrid.sort.js', 
      'bower_components/**/jqwidgets/jqxgrid.pager.js', 
      'bower_components/**/jqwidgets/jqxgrid.selection.js', 
      'bower_components/**/jqwidgets/jqxgrid.edit.js', 
      'bower_components/**/jqwidgets/jqxangular.js' 
     ]) 
     .pipe(plumber()) 
     .pipe(concat('vendor.js')) 
     //.pipe(uglify()) 
     .pipe(gulp.dest('dist/js')); 
}); 



gulp.start('vendorScripts'); 

這就是我如何使用的指令:

<jqx-grid id="cs-grid" jqx-settings="$root.settings" jqx-source="$root.gridData"></jqx-grid> 

我的控制器實現:

$scope.PageSize = 3; 
      $rootScope.settings = { 
       theme: 'bootstrap', 
       width: '100%', 
       height: '100%', 
       selectionmode: 'none', 
       sortable: true, 
       pageable: true, 
       pagermode: 'simple', 
       pagerheight: 0, 
       pagesizeoptions: [3, 5, 10], 
       pagesize: $scope.PageSize, 
       columns: $rootScope.columns, 
       pagerrenderer: function() { 
        return ''; 
       }, 
       bindingcomplete: function() { 
        $scope.pagingInfo = $("#cs-grid").jqxGrid('getpaginginformation'); 
        $scope.PageNum = 0; 
       } 
      }; 

我曾經懷疑,jqxWidget依賴性未正確安裝。但是當我去通過gulp生成的vendor.js時,我發現有相關的方法(jqxGrid等)可用。

我正在努力解決這個錯誤。請幫幫我,

在此先感謝

回答

-1

嘗試重新排序的包含文件,特別是「jqwidgets文件標籤」。當我遇到類似問題時,我按照這種方式重新排序,以便將日期選擇器文件放到標記堆棧頂部。然後,它運行良好。當然,在你的情況下,datepicker不是問題。不過,重新排序可能會有所幫助。