Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在同一角度控制器上使用两个角度数据表?_Javascript_Angularjs_Datatable_Datatables_Angular Datatables - Fatal编程技术网

Javascript 如何在同一角度控制器上使用两个角度数据表?

Javascript 如何在同一角度控制器上使用两个角度数据表?,javascript,angularjs,datatable,datatables,angular-datatables,Javascript,Angularjs,Datatable,Datatables,Angular Datatables,我有一个数据表。当我点击一行数据表时,会弹出一个引导模式,其中还有另一个数据表。但是我不能让它工作。当模式弹出且控制台上未出现错误时,不会显示数据表。我对datatables使用ng repeat,因为异步方法不能通过https工作,这种方法使我能够更轻松地自定义tr元素 controller.js: ... var vm = this; vm.dtOptions = DTOptionsBuilder.newOptions(); vm.dtColumns = [ DTColumnDe

我有一个数据表。当我点击一行数据表时,会弹出一个引导模式,其中还有另一个数据表。但是我不能让它工作。当模式弹出且控制台上未出现错误时,不会显示数据表。我对datatables使用ng repeat,因为异步方法不能通过https工作,这种方法使我能够更轻松地自定义tr元素

controller.js:

...
var vm = this;

vm.dtOptions = DTOptionsBuilder.newOptions();

vm.dtColumns = [
    DTColumnDefBuilder.newColumnDef(0), // ProjectID
    DTColumnDefBuilder.newColumnDef(1), // Name
    DTColumnDefBuilder.newColumnDef(3), // Priority
    DTColumnDefBuilder.newColumnDef(4), // Status
    DTColumnDefBuilder.newColumnDef(5), // ProjectManager
    DTColumnDefBuilder.newColumnDef(6), // Contract
    DTColumnDefBuilder.newColumnDef(7) // Description
];

vm.quotationsOptions = DTOptionsBuilder.newOptions();
vm.quotationsCollumns = [
    DTColumnDefBuilder.newColumnDef(8), // Number
    DTColumnDefBuilder.newColumnDef(9), // Phase
    DTColumnDefBuilder.newColumnDef(10), // Reason
    DTColumnDefBuilder.newColumnDef(11) // Date
];

$scope.openModal = function (p) {
    $scope.selectedContractID = p.ContractID;
    $scope.projectModal = p;
    $scope.quotationsModal = [];
    var i, j;
    for (i = 0; i < p.Quotations.length; i++) {
        $http
            .get("http://localhost:63680/api/quotations/" + p.Quotations[i])
            .then(function (response) {
                $scope.doesProjectHaveQuotations = true;
                $scope.quotationsModal.push(response.data);
                $scope.quotationsModal.sort(function (a, b) {
                    return a.ID - b.ID;
                });
            });
    }
};
。。。
var vm=这个;
vm.dtOptions=DTOptionsBuilder.newOptions();
vm.dtColumns=[
DTColumnDefBuilder.newColumnDef(0),//ProjectID
DTColumnDefBuilder.newColumnDef(1),//名称
DTColumnDefBuilder.newColumnDef(3),//优先级
DTColumnDefBuilder.newColumnDef(4),//状态
DTColumnDefBuilder.newColumnDef(5),//项目管理器
DTColumnDefBuilder.newColumnDef(6),//合同
DTColumnDefBuilder.newColumnDef(7)//说明
];
vm.quotationsOptions=DTOptionsBuilder.newOptions();
vm.quotationsCollumns=[
DTColumnDefBuilder.newColumnDef(8),//编号
DTColumnDefBuilder.newColumnDef(9),//阶段
DTColumnDefBuilder.newColumnDef(10),//原因
DTColumnDefBuilder.newColumnDef(11)//日期
];
$scope.openModal=函数(p){
$scope.selectedconstrucd=p.construcd;
$scope.projectModal=p;
$scope.quotationsModal=[];
varⅠ,j;
对于(i=0;i
index.html

<div class="panel panel-default col-md-12" id="data-tables">
    <div class="panel-body">
        <div class="page-header">
            <h1>Projects
                <small>Overview</small>
            </h1>
        </div>
        <table datatable="ng" dt-options="showCase.dtOptions" dt-columns="showCase.dtColumnDefs"
               class="table table-striped table-bordered table-hover">
            <thead>
                <tr>
                    <th>Project ID</th>
                    <th>Contract</th>
                    <th>Name</th>
                    <th>Status</th>
                    <th>Priority</th>
                    <th>Project Manager</th>
                </tr>
            </thead>
            <tbody>
                <tr ng-repeat="p in projects" data-toggle="modal" data-target="#edit-quotation"
                    ng-click="openModal(p)" )>
                    <td>{{ p.ProjectID }}</td>
                    <td>{{ p.Contract }}</td>
                    <td>{{ p.Name }}</td>
                    <td>{{ p.Status }}</td>
                    <td>{{ p.Priority }}</td>
                    <td>{{ p.ProjectManager }}</td>
                </tr>
            </tbody>
        </table>
    </div>
</div>
<!-- Modal -->
<div class="modal fade" id="edit-quotation" role="dialog">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal">&times;</button>
                <h4 class="modal-title">Project's Quotations</h4>
                <h5 class="modal-title" style="margin-top: 10px"><b>Name: </b>{{ projectModal.Name }}</h5>
            </div>
            <div class="modal-body">
                <div class="panel panel-default">
                    <div class="panel-body">
                        <div class="table-responsive">
                            <table datatable="ng" dt-options="showCase.quotationsOptions" dt-columns="showCase.quotationsCollumns" class="table">
                                <thead>
                                    <tr>
                                        <th>Project ID:
                                            <span class="notBold">{{ projectModal.ProjectID }}</span>
                                        </th>
                                        <th>Contract:
                                            <span class="notBold">{{ projectModal.Contract }}</span>
                                        </th>
                                        <th>Status:
                                            <span class="notBold">{{ projectModal.Status }}</span>
                                        </th>
                                        <th>Priority:
                                            <span class="notBold">{{ projectModal.Priority }}</span>
                                        </th>
                                        <th>Project Manager:
                                            <span class="notBold">{{ projectModal.ProjectManager }}</span>
                                        </th>

                                    </tr>
                                </thead>
                            </table>
                        </div>
                        <div class="table-responsive" ng-if="doesProjectHaveQuotations">
                            <table class="table table-striped table-bordered table-hover">
                                <thead>
                                    <tr>
                                        <th>Number</th>
                                        <th>Phase</th>
                                        <th>Reason</th>
                                        <th>Date</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <tr ng-repeat="q in quotationsModal" ng-click="quotationIsSelected(q)">
                                        <td>{{ q.Number }}</td>
                                        <td>{{ q.PhaseName }}</td>
                                        <td>{{ q.ReasonName }}</td>
                                        <td>{{ q.Date | date}}</td>
                                    </tr>
                                </tbody>
                            </table>
                        </div>
                        <div ng-if="!doesProjectHaveQuotations">
                            <p style="text-align: center;">This project doesn't currently have any quotations.</p>
                        </div>
                    </div>
                </div>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-primary dropdown-toggle" ng-click="addQuotation()">Add
                    Quotation
                </button>
                <button type="button" class="btn btn-primary dropdown-toggle" ng-click="projectDetails()">Details
                </button>
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            </div>
        </div>
    </div>
</div>

项目
概述
项目ID
合同
名称
地位
优先
项目经理
{p.projectd}
{{p.合同}
{{p.Name}}
{p.状态}
{{p.优先权}
{{p.ProjectManager}}
&时代;
项目报价
名称:{{projectModal.Name}
项目ID:
{{projectModal.projectd}
合同:
{{projectModal.Contract}
地位:
{{projectModal.Status}
优先:
{{projectModal.Priority}
项目经理:
{{projectModal.ProjectManager}
数
阶段
理由
日期
{{q.Number}}
{{q.PhaseName}}
{{q.ReasonName}
{{q.日期|日期}
此项目当前没有任何报价

添加 引用 细节 接近

我不知道怎么才能解决这个问题。由于没有错误,我不确定问题出在哪里。我做错了什么?

我终于知道发生了什么事。我从服务器上一个接一个地检索行,并在每次得到一个数据表时初始化该数据表,该数据表将给出“3.警告:无法重新初始化数据表”


因此,我所做的是创建一个临时变量,在其中存储我的所有行,并且在确保从服务器检索到所有行之后,我将表的ng模型指向该变量,它就工作了。

我最终发现了发生了什么。我从服务器上一个接一个地检索行,并在每次得到一个数据表时初始化该数据表,该数据表将给出“3.警告:无法重新初始化数据表”

因此,我所做的是创建一个临时变量,在其中存储我的所有行,并在确保从服务器检索到所有行后,将表的ng模型指向该变量,然后该变量工作。

请提供代码