我想在普通视图和模态(ui.bootstrap)中使用相同的控制器来添加和编辑项目。
在那个控制器中,我注入了项目数据(如果它已经添加,那么它是空的):
function itemCtrl($scope, itemData) {
$scope.afterSumbit = function() {
//If it's opened in modal I have to pass new item values to modal opener
//but I don't have $modalInstance
}
}
问题是当我在模态中打开ctrl时我必须解析模态,但我没有$modalInstance
,因为它没有被注入。
我无法将$modalInstance
作为依赖项添加到控制器中,因为在正常视图中我没有使用它。
我知道控制器是否是模态打开的,但是如何注入$modalInstance
?
如何解决此问题?
答案 0 :(得分:0)
尝试将模态窗口的范围设置为当前范围,如
app.controller(......
var modalInstance = null;
$scope.openModal = function (size) {
modalInstance = $modal.open({
templateUrl: 'myModal.html',
size: size,
windowClass: 'medium-size-modal',
scope: $scope
});
return modalInstance;
};
稍后您可以使用您创建的实例
将其从dismiss / cancel / ok方法中删除$scope.cancel = function () {
if (modalInstance) {
modalInstance.dismiss('cancel');
}
};