2015-01-08 52 views
1
angular.js:11594 TypeError: undefined is not a function 
at ini_table (http://localhost/ferpa-quiz-client/assets/js/controller.js:127:15) 
at HTMLDocument.<anonymous> (http://localhost/ferpa-quiz-client/assets/js/controller.js:26:5) 
at j (http://localhost/ferpa-quiz-client/bower_components/jquery/dist/jquery.min.js:2:26911) 
at Object.k.add [as done] (http://localhost/ferpa-quiz-client/bower_components/jquery/dist/jquery.min.js:2:27220) 
at n.fn.ready (http://localhost/ferpa-quiz-client/bower_components/jquery/dist/jquery.min.js:2:29326) 
at new <anonymous> (http://localhost/ferpa-quiz-client/assets/js/controller.js:21:16) 
at e (http://localhost/ferpa-quiz-client/bower_components/angular/angular.min.js:37:96) 
at Object.instantiate (http://localhost/ferpa-quiz-client/bower_components/angular/angular.min.js:37:207) 
at http://localhost/ferpa-quiz-client/bower_components/angular/angular.min.js:76:267 
at link (http://localhost/ferpa-quiz-client/bower_components/angular-route/angular-route.min.js:7:248) <div ng-view="" class="ng-scope"> 

這是我得到的錯誤,而且是我的代碼。刪除.makeEditable()後一切正常。數據表makeEditable()不是函數嗎?

$("#questiontable").DataTable(
      { 
       bAutoWidth: true, 
       bProcessing: true, 
       ajax: '../api/ferpa-quiz/public/getallquestion', 
       sDom: '<"$grid-toolbar"sF>tr<"dataTables-footer"ilp>', 
       iDisplayLength: 5, 

       aoColumns: [ 
        { 
         mData: 'QUESTION', 
         sTitle: "QUESTION" 

        } 


       ] 

      } 
     ).makeEditable(); 

的Html

<script src="bower_components/datatables/media/js/jquery.dataTables.min.js"></script> 
<link href="bower_components/datatables/media/css/jquery.dataTables.min.css" rel="stylesheet"/> 
<script src="bower_components/ediTable/jquery.dataTables.editable.js"></script> 
<script src="bower_components/jeditable/js/jquery.jeditable.js"></script> 

事情我曾嘗試: 1.切換 'd' 至 'd'。兩者都不能工作 2.更改腳本引用的順序。不起作用。

JQuery 1.10.2 Datatable makeEditable() is Not a function

+0

在本文中,您只引用了6個必需腳本中的2個。如果你正在引用其他4個,請在你的例子中包括它們 - 按正確的順序 - 這樣我們可以消除這個問題的可能性。 'jquery.jeditable.js'也需要這個工作。 – wahwahwah

+0

作爲回答發佈,因爲沒有足夠的評論空間 – wahwahwah

+0

https://code.google.com/p/jquery-datatables-editable/wiki/HTMLSource我找到了。謝謝。 – OverFlowed

回答

1

腳本命令:

從你的榜樣,這可能是因爲腳本被加載無序。在dataTables網站上給出的例子在這個順序加載腳本:

jquery.min.js 
jquery.dataTables.min.js 
jquery.jeditable.js 
jquery-ui.js 
jquery.validate.js //not sure this one is strictly needed 
jquery.dataTables.editable.js 

jeditable是必需的腳本dataTables.editable調用它。這也意味着jeditable需要在dataTables.editable之前加載

JQuery的在角JS:

我不可怕熟悉的角度JS,但是從他們的文檔......

角是否使用jQuery庫?

是的,如果應用程序正在引導時,Angular可以使用jQuery。 如果腳本路徑中沒有jQuery,則Angular會自行實現我們稱之爲jQLite的jQuery子集。

而且,JQLite與JQuery不一樣...您需要JQuery的dataTable。注意:

Angular 1.3只支持jQuery 2.1或更高版本。 jQuery 1.7和更新的 可能與Angular正常工作,但我們不能保證。

所以,版本也很重要。