我有两种服务方法
getObject: function (url, id) {
var defer = $q.defer();
$http({method: 'GET', url: url+'/'+id}).
success(function (data, status, headers, config) {
defer.resolve(data);
})
.error(function (data, status, headers, config) {
defer.reject(status);
});
return defer.promise;
},
openModal: function (objid, templateUrl) {
var modalInstance = $modal.open({
templateUrl: templateUrl
controller: 'ModalInstanceCtrl',
});
return modalInstance.result
},
现在,当openModal
与id
然后我需要调用self.getObject(id)
然后抓住该对象,然后将其传递给ModalInstanceCtrl
答案 0 :(得分:1)
调用openModal
时,调用getObject
,然后使用resolve
将该承诺传递给模态控制器:
openModal: function(objId, templateUrl) {
var p = getObject(foo, bar);
var modalInstance = $modal.open({
templateUrl: templateUrl
controller: 'ModalInstanceCtrl',
resolve: {
objectPromise: function() {
return p;
}
}
});
return modalInstance.result
}
有关如何使用resolve
将数据传递给模态控制器的更多文档,请参阅https://angular-ui.github.io/bootstrap/#/modal。