使用存储在范围变量中的数据而不是进行ajax调用

时间:2015-07-22 02:11:40

标签: javascript jquery angularjs html5 css3

我正在使用带表工具link的angular-datatable。

view.html

<table datatable="ng" dt-options="dtOptions" class="table table-striped table-bordered">
<thead>
    <tr>
        <th>Id</th>
        <th>Data</th>
               </tr>
</thead>
<tbody>
    <tr ng-repeat="data in datas">
        <td>{{ data.Id }}</td>
        <td>{{ data.Name }}</td>
    </tr>
</tbody>

controller.js(我在控制器中注入了DTOptionsBuilder和DTColumnBuilder)

 $scope.dtOptions = DTOptionsBuilder.fromSource('data.json')
    .withTableTools('app/bower_components/datatables-tabletools/swf/copy_csv_xls_pdf.swf')
    .withTableToolsButtons([
        'copy',
        'print', {
            'sExtends': 'collection',
            'sButtonText': 'Save',
            'aButtons': ['csv', 'xls', 'pdf']
        }
    ]);

在app.js中,我已经包含了datatables和datatables.tabletools。

在index.html中,我已经包含了

<link rel="stylesheet" href="bower_components/datatables-tabletools/css/dataTables.tableTools.css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="bower_components/datatables/media/js/jquery.dataTables.min.js"></script>
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/angular-datatables/dist/angular-datatables.min.js"></script>
<script src="bower_components/datatables-tabletools/js/dataTables.tableTools.js"></script>
<script src="bower_components/angular-datatables/dist/plugins/tabletools/angular-datatables.tabletools.min.js"></script>

我想使用范围变量中使用的数据而不是进行ajax调用。如果我删除fromSource(data.json),我收到一个错误,表明tableTools不是一个函数。我该怎么解决这个问题呢。

1 个答案:

答案 0 :(得分:1)

我查看了文档,可以使用withPromise

 $scope.dtOptions = DTOptionsBuilder.fromFnPromise(function() { return $q.when($scope.yourObject);})
    .withTableTools('app/bower_components/datatables-tabletools/swf/copy_csv_xls_pdf.swf')
    .withTableToolsButtons([
        'copy',
        'print', {
            'sExtends': 'collection',
            'sButtonText': 'Save',
            'aButtons': ['csv', 'xls', 'pdf']
        }
    ]);

试试吧。

$q.when返回一个promise,该promise将解析为作为when函数的参数传入的值。