数据表makeEditable()不是函数吗?

时间:2015-01-08 15:28:55

标签: javascript jquery datatable jquery-datatables

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()后,一切正常。

$("#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.切换&#39; D&#39;到了&#39;。两者都不起作用 2.更改脚本引用的顺序。不行。

JQuery 1.10.2 Datatable makeEditable() is Not a function

1 个答案:

答案 0 :(得分: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

jeditabledataTables.editable调用它所必需的脚本。这也意味着jeditable需要在 dataTables.editable之前加载

Angular JS中的JQuery:

我对角度js并不熟悉,但是从他们的文档......

  

Angular是否使用jQuery库?

     

是的,Angular可以在应用程序被引导时在您的应用程序中使用jQuery。   如果脚本路径中不存在jQuery,则Angular会回退到   它自己实现的jQuery子集,我们称之为jQLite。

而且,JQLite与JQuery不同......你需要dataTable的JQuery。注意:

  

Angular 1.3仅支持jQuery 2.1或更高版本。 jQuery 1.7和更新版本   可能与Angular正常工作但我们不能保证。

因此,版本也很重要。