关于javascript:ng-table> TypeError:无法读取未定义的属性”排序”

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后,错误停止并且该应用程序开始正常运行。