Angularjs 角度数据表应用不正确

Angularjs 角度数据表应用不正确,angularjs,datatables,Angularjs,Datatables,以下是我的html代码: <div ng-controller="withAjaxCtrl"> <table datatable="" dt-options="dtOptions" dt-columns="dtColumns" class="row-border hover"></table> </div> 当我运行我的页面时,我得到一个错误:“error:[ng:areq]Argument'withAjaxCtrl'不是一个函数,未定义”

以下是我的html代码:

<div ng-controller="withAjaxCtrl">
   <table datatable="" dt-options="dtOptions" dt-columns="dtColumns" class="row-border hover"></table>
</div>

当我运行我的页面时,我得到一个错误:“error:[ng:areq]Argument'withAjaxCtrl'不是一个函数,未定义”。我的数据存储在$scope.data中

尊敬的Sameer的回答是不正确的。我花了两天时间才找到解决办法

您必须记住两个问题:

  • 使用DTOptionsBuilder.fromfnomise,和
  • 在你的工厂里有你的承诺
  • 这是正确的解决方案:



    感谢@user1177440的更新,那个答案当时只是在我的头顶上给出的,因此提到了“尝试替换”,无论如何我会删除我的答案并更新你的答案,继续保持良好的工作。我尝试删除它,它说我不能删除一个已接受的答案
    (function () {
    
    var manageBackOrdersController = function ($scope, $http, $routeParams) {
    
        $http({
            url: '/Profiles/firstJson',
            method: "GET",
            params: {}
        }).success(function (data) {
            var JSON = data;
            $scope.data = JSON;
    
        });
    
    } 
    
    manageBackOrdersController.$inject = ['$scope', '$http', '$routeParams'];
    
    angular.module('customersApp')
      .controller('manageOrdersController', manageOrdersController);
    
    angular.module('datatablesSampleApp', ['datatables'])
        .controller('withAjaxCtrl', function ($scope, DTOptionsBuilder, DTColumnBuilder) {
            $scope.dtOptions = DTOptionsBuilder.fromSource('scope.data')
               .withPaginationType('full_numbers');
            $scope.dtColumns = [
                DTColumnBuilder.newColumn('Customer').withTitle('Customer')
            ];
        });
    
    }());
    
    'use strict';
     WithResponsiveCtrl.$inject = ['DTOptionsBuilder', 'DTColumnBuilder', 'simpleFactory'];
     angular.module('showcase.withResponsive', [])
    .controller('WithResponsiveCtrl', WithResponsiveCtrl);
    
    function WithResponsiveCtrl(DTOptionsBuilder, DTColumnBuilder, simpleFactory) {
    var vm = this;
    vm.dtOptions = DTOptionsBuilder.fromFnPromise(function() {
        return simpleFactory.getData(); }).withPaginationType('full_numbers')
        // Active Responsive plugin
        .withOption('responsive', true);
    vm.dtColumns = [
        DTColumnBuilder.newColumn('id').withTitle('ID'),
        DTColumnBuilder.newColumn('firstName').withTitle('First name'),
        // .notVisible() does not work in this case. Use .withClass('none') instead
        DTColumnBuilder.newColumn('lastName').withTitle('Last name').withClass('none')
    ]; }
    
    simpleFactory.$inject = ['$http', '$q', '$log'];
    angular.module('showcase.withResponsive').factory('simpleFactory', simpleFactory); 
    function simpleFactory($http, $q, $log) {
    return {
        getData: function () {
            var deferred = $q.defer();
            $http.get('api/data.json')
                .success(function (data) {
                    deferred.resolve(data);
                }).error(function (msg, code) {
                    deferred.reject(msg);
                    $log.error(msg, code);
                });
            return deferred.promise;
        }
    } };