Angularjs 在Umbraco 7自定义部分中使用角度数据表

Angularjs 在Umbraco 7自定义部分中使用角度数据表,angularjs,umbraco,jquery-datatables,Angularjs,Umbraco,Jquery Datatables,我正试图在我的umbraco自定义部分中使用一个角度数据表和服务器端处理。我的问题是,当我使用这一行时: angular.module('umbraco', ['datatables']) 如果包含datatables依赖项,则会出现以下错误: angular.min.js?cdv=886402897:63 Error: Argument 'Umbraco.MainController' is not a function, got undefined at Error (native

我正试图在我的umbraco自定义部分中使用一个角度数据表和服务器端处理。我的问题是,当我使用这一行时:

angular.module('umbraco', ['datatables'])
如果包含datatables依赖项,则会出现以下错误:

angular.min.js?cdv=886402897:63 Error: Argument 'Umbraco.MainController' is not a function, got undefined
    at Error (native)
    at cb (http://localhost:65055/umbraco/lib/angular/1.1.5/angular.min.js?cdv=886402897:17:114)
    at xa (http://localhost:65055/umbraco/lib/angular/1.1.5/angular.min.js?cdv=886402897:17:187)
    at $get (http://localhost:65055/umbraco/lib/angular/1.1.5/angular.min.js?cdv=886402897:53:310)
    at http://localhost:65055/umbraco/lib/angular/1.1.5/angular.min.js?cdv=886402897:44:274
    at n (http://localhost:65055/umbraco/lib/angular/1.1.5/angular.min.js?cdv=886402897:7:74)
    at k (http://localhost:65055/umbraco/lib/angular/1.1.5/angular.min.js?cdv=886402897:44:139)
    at e (http://localhost:65055/umbraco/lib/angular/1.1.5/angular.min.js?cdv=886402897:40:139)
    at e (http://localhost:65055/umbraco/lib/angular/1.1.5/angular.min.js?cdv=886402897:40:156)
    at e (http://localhost:65055/umbraco/lib/angular/1.1.5/angular.min.js?cdv=886402897:40:156)
这是我的包。清单:

javascript : [      
            '~/App_Plugins/BlogShop/backoffice/BlogShopTree/js/jquery.dataTables.js',
            '~/App_Plugins/BlogShop/backoffice/BlogShopTree/js/angular-datatables.js',
            '~/App_Plugins/BlogShop/backoffice/BlogShopTree/js/serverSideProcessing.js',    
    ], 
这是控制器:

angular.module('umbraco',['datatables']).controller('datatable.Controller', function (DTOptionsBuilder, DTColumnBuilder) {
    vm.dtOptions = DTOptionsBuilder.newOptions()
        .withOption('ajax', {
            // Either you specify the AjaxDataProp here
            // dataSrc: 'data',
            url: '/angular-datatables/data/serverSideProcessing',
            type: 'POST'
        })
     // or here
     .withDataProp('data')
        .withOption('processing', true)
        .withOption('serverSide', true)
        .withPaginationType('full_numbers');
    vm.dtColumns = [
        DTColumnBuilder.newColumn('Id').withTitle('ID'),
        DTColumnBuilder.newColumn('Name').withTitle('First name'),
        DTColumnBuilder.newColumn('Father').withTitle('Last name').notVisible()
    ];
});
以及HTML:

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


我做错了什么?

问题是“umbraco”模块正在重新创建而不是检索。以下引自

创建与检索

请注意,使用angular.module('myModule',[])将创建 模块myModule并覆盖任何名为myModule的现有模块。使用 module('myModule')检索现有模块

^这将有效地破坏其他地方设置的依赖项(如来自umbraco的依赖项)。您对数据表的使用似乎不需要 尝试以下方法。恐怕我无法用您的示例100%测试这段代码,因为我没有您的服务器端支持,但这种方法已经过测试,并且是我广泛使用的一种模式。最大的区别不包括,如果指定-(re)将创建模块

var app = angular.module("umbraco");
        app.requires.push('datatables'); 

        app.controller('datatable.Controller', function (DTOptionsBuilder, DTColumnBuilder) {
            vm.dtOptions = DTOptionsBuilder.newOptions()
                .withOption('ajax', {
                    // Either you specify the AjaxDataProp here
                    // dataSrc: 'data',
                    url: '/angular-datatables/data/serverSideProcessing',
                    type: 'POST'
                })
             // or here
             .withDataProp('data')
                .withOption('processing', true)
                .withOption('serverSide', true)
                .withPaginationType('full_numbers');
            vm.dtColumns = [
                DTColumnBuilder.newColumn('Id').withTitle('ID'),
                DTColumnBuilder.newColumn('Name').withTitle('First name'),
                DTColumnBuilder.newColumn('Father').withTitle('Last name').notVisible()
            ];
        });

试试这个…使用:var app=angular.module('umbraco',[]);app.requires.push('datatables');我一直在犯同样的错误谢谢你,这就是problem@Pau您是否使用umbraco 7制作了角度数据表?怎么用?据我所知,在版本>=1.3中需要angular,但umbraco使用1.1.5…按照上面提到的操作,我得到了以下错误:“RangeError:在Function.x.extend.type的Object.toString(native)处超过了最大调用堆栈大小”作为基本angular datatables示例。