我有一个模态控制器,就像这样
angular.module('myApp').controller('ModalDemoCtrl', function ($scope, $modal, $log) {
$scope.arrayList = [];
$scope.newItem = function () {
var modalInstance = $modal.open({
templateUrl: 'newItem.html',
controller: 'newItemCtrl',
windowClass: 'app-modal-window',
backdrop: 'static',
resolve: {
}
});
modalInstance.result.then(function (editable) {
console.log($scope.arrayList);
}, function () {
$log.info('Modal dismissed at: ' + new Date());
});
};
$scope.newArrayItem = function () {
var modalInstance = $modal.open({
templateUrl: 'newArrayItem.html',
controller: 'newArrayCtrl',
windowClass: 'app-modal-window',
backdrop: 'static',
resolve: {
}
});
modalInstance.result.then(function (editable) {
$scope.arrayList.push(editable);
}, function () {
$log.info('Modal dismissed at: ' + new Date());
});
};
当我第一次打开模态窗口时,它是创建一个'newItem',然后在该窗口内我打开另一个模态来创建'ArrayItems',当创建一个arrayItem时(当该模态关闭时)我想推送该项目到我的$scope.arrayList
,并重复,当创建所有arrayItems时,我也关闭'newItem'模式,这是我想要到达$scope.arrayList
的地方,但是当我尝试记录它时,它是空。
所以我想我需要将对象推送到父作用域,我该怎么做?
答案 0 :(得分:0)
我找到了一个解决方案,不知道它是否是最佳的,但现在就是。
我无法启动我所在的阵列,我不得不在第一个模态的控制器内启动
angular.module('myApp').controller('newItemCtrl', function ($scope, $modalInstance) {
$scope.arrayList = [];
$scope.editable = {
arrayList: $scope.arrayList
};
$scope.ok = function () {
$modalInstance.close($scope.editable);
};
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
});
正如您所看到的,我还必须将其包含在我的可编辑对象中,以便在关闭模式时传递它。
然后在关闭第二个模态时,我在那里创建了arrayList项目,我只是像以前一样按$scope.arrayList.push($scope.editable);
最后,当我关闭第一个模态时,我可以记录我的arrayList console.log(editable);
虽然这个arrayList将位于另一个对象(可编辑的第一个模态)中,但它现在还不错。