Angular-ui modal - pass data into modal
How about this?
I added the item to the resolve
resolve: { items: function () { return $scope.items; }, item: function(){ return size; }}
And in the controller
I am doing: $scope.item = item;
after injecting the item
I've made a plunker for you at http://plnkr.co/FzU5SOv3pdZmAPAIOzdo.
You want to resolve your data much like you do items currently.
$scope.open = function (size) {var modalInstance = $modal.open({ templateUrl: 'myModalContent.html', controller: 'ModalInstanceCtrl', resolve: { items: function () { return $scope.items; }, size: function() { console.log('size: ', size); return size; } }});
and in your modal controller make sure to include the now resolved size object as follows:
angular.module('ui.bootstrap.demo').controller('ModalInstanceCtrl', function ($scope, $modalInstance, items, size) { $scope.items = items; $scope.selected = { item: $scope.items[0] }; $scope.size = size; $scope.ok = function () { $modalInstance.close($scope.selected.item); }; $scope.cancel = function () { $modalInstance.dismiss('cancel'); };});
What worked for me was to create an object within resolve
that returns an object that holds the variables that I wanted to share.
resolve: { shared: function(){ return { name: 'Spencer', numbers: [1, 2, 3] } }}
To access the shared
object, include it when defining your modal instance controller.
app.controller('ModalInstanceController', function($scope, shared, $uibModalInstance,