【发布时间】:2018-08-21 00:25:44
【问题描述】:
相关信息: 以角度 1.5.8 编写。 引导用户界面 1.1.2。 uibPopover 用于显示我的弹出框。
我在尝试显示依赖于 promise 数据的 popver 时遇到问题
相关的角度服务获取调用:
this.getDetails = function (req) {
var deferred = $q.defer();
return $http.get("/api/getDetails?id=" + req).then(
function (response) {
deferred.resolve(response.data.ResponseData);
return deferred.promise;
}
);
}
角度控制器代码:
$scope.showPopOver(req){
angularService.getDetails(req).then(function(response) {
$scope.vm.myPopOverData = response;
$scope.vm.htmlPopOver = {
templateUrl: '/path/to/template.html',
title: 'Details'
};
});
}
弹出框所在的html:
<a style="cursor:pointer" tabindex="0" popover-placement="right-top" uib-popover-template="vm.htmlPopOver.templateUrl" popover-title="{{vm.htmlPopOver.title}}"
popover-trigger="outsideClick" ng-click="showPopOver(data)" >Click me</a>
第一次单击我的锚标记时,会检索数据,但不会显示任何弹出框。第二次单击,弹出框将显示,但是 api 调用没有返回应显示的数据(这是一个带有 ng-repeat 的表)。它不可避免地会在 Promise 完成解析后设置,但在等待服务器响应时,弹出框保持关闭/隐藏会很好。
所以,我想我有两个问题。第一次单击弹出框只会检索数据。另一个问题是在检索数据之前出现的弹出框。
这个问题有简单/优雅的解决方案吗?
提前谢谢你
【问题讨论】:
标签: jquery angularjs angular-ui popover