AngularJS:向HTML弹窗传值并展示数据失败,求问题排查
问题排查与修复方案
1. ng-repeat绑定对象错误
你的弹窗表格里用了 ng-repeat="row in page",但page变量并没有在弹窗的$scope中定义。因为你通过adsm-table绑定的是popupTable,这类自定义表格组件通常会将数据挂载到表格实例的属性上(比如popupTable.page或popupTable.data)。
修改HTML中的ng-repeat:
<tr ng-repeat="row in popupTable.page ">
若不确定属性名称,请查阅TableFactory的官方文档确认正确的数据字段。
2. 未注入$rootScope导致潜在错误
弹窗控制器里使用了$rootScope.isPopup = true;,但依赖注入数组里没有包含$rootScope,这会触发AngularJS注入错误,可能间接影响数据渲染。
修正控制器的依赖注入:
var EventWorkflow = ["$scope", "$rootScope", "$modalInstance", "TableFactory", "ConsultFactory", function ($scope, $rootScope, $modalInstance, TableFactory, ConsultFactory) { $rootScope.isPopup = true; // ... 其他代码 }];
3. 确认TableFactory的service参数有效性
检查ConsultFactory.openSituationWorkflowRest(id)是否返回格式正确的Promise对象,可以在回调中打印数据验证:
ConsultFactory.openSituationWorkflowRest(id).then(function(data) { console.log('表格返回数据:', data); // 确认数据是否正常返回、结构是否符合表格要求 });
如果TableFactory不支持直接传入Promise,需手动处理数据后初始化表格:
ConsultFactory.openSituationWorkflowRest(id).then(function(data) { $scope.popupTable = new TableFactory({ data: data, // 用接口返回的数据初始化表格 remotePagination: false }); });
4. 移除冗余API调用
ConsultFactory.openWorkflowRest(id).then(function(data) { }); 这段代码未处理返回结果,属于无效请求,建议删除以避免资源浪费。
内容的提问来源于stack exchange,提问作者Luis Marcelo Santos
相关产品推荐
相关产品推荐

