ng-table> TypeError: Cannot read property 'sorting' of undefined
当尝试使用ng-tables打开页面时,总是出现错误" TypeError:无法读取未定义属性\\'sorting \\'"。我有一个控制器
movies.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | app.controller('moviesController', ['$scope', '$http', '$uibModal', 'blockUI', 'notifyService', 'lib', '$filter', 'NgTableParams', function ($scope, $http, $uibModal, blockUI, notifyService, lib, $filter, NgTableParams) { var createTable = function (options, dataFunction) { return new NgTableParams(options, { total: dataFunction().length, getData: function ($defer, params) { var orderedData = params.sorting() ? $filter('orderBy')(dataFunction(), params.orderBy()) : dataFunction(); orderedData = params.filter() ? $filter('filter')(orderedData, params.filter()) : orderedData; params.total(orderedData.length); $defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count())); } }); }; var movies = []; $scope.moviesTable = createTable({ page: 1, count: 10, sorting: { title: 'asc' } }, function () { return movies; }); var init = function () { loadMovies(); }; var loadMovies = function () { blockUI.start(); $http.get('/Api/Movies').then( function (response) { blockUI.stop(); movies = response.data; $scope.moviesTable.reload(); }, lib.handleError); }; init(); }]); |
及其html如下所示:
Index.cshtml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | @using System.Web.Optimization @{ ViewBag.Title ="Movies"; } @section libs { @Scripts.Render("~/bundles/movies") } <html> <head> </head> <body> Movies <p>There are no registered Movies yet.</p> <table ng-table="moviesTable" class="table" show-filter="true"> <tr ng-repeat="movie in $data"> <td title="'Title'" filter="{ title: 'text'}" sortable="'title'"> {{movie.title }} </td> <td title="'Rank'" filter="{ rank: 'number'}" sortable="'rank'"> {{movie.rank}} </td> <td title="'Year'" filter="{ year: 'number'}" sortable="'year'"> {{movie.year}} </td> <td title="'Genre'" sortable="'genre'"> {{movie.genre}} </td> </tr> </table> <i class="fa fa-plus">Add movie </body> </html> |
html具有共享布局,其代码的一部分具有
_Layout.cshtml
1 2 3 | @Scripts.Render("~/bundles/lib") @Scripts.Render("~/bundles/angular") @Scripts.Render("~/bundles/uiBootstrap") |
在另一个文件中,我包含如下捆绑:
BundleConfig.cs
1 2 3 4 | bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/bootstrap.css","~/Content/angular-block-ui.css","~/Content/pnotify.css" ,"~/Content/ng-table.css","~/Content/Site.css")); bundles.Add(new ScriptBundle("~/bundles/angular").Include("~/Scripts/angular.js","~/Scripts/angular-route.js", "~/Scripts/angular-block-ui.js","~/Scripts/pnotify.js","~/Scripts/directives.js","~/Scripts/ng-table.js")); |
我对AngularJS,HTML和C#还是很陌生。有什么可能是错误的并导致该错误?我什么也找不到解决我的问题的方法
我发现了。我已经用NuGet安装了ngTable 3.0.1。卸载并重新安装版本0.8.3后,错误停止并且该应用程序开始正常运行。