I think I'm missing something but cannot figure what.
Basically I'm trying to pass an object to the modal like below, but instead of getting the passed object I gets null...so I think is a problem with the scope but I'm new in Angular and need some help.
Controller
app.controller("musicViewModel", function ($scope, $http, $location, $uibModal, $log) { $scope.selected = null; $scope.open = function (item) { $scope.selected = item; $log.info('Open' + $scope.selected); // get right passes object var modalInstance = $uibModal.open({ templateUrl: 'myModalContent.html', controller: 'musicViewModel', size: 'lg', resolve: { items: function () { return $scope.selected; } } }); }; $scope.toggleAnimation = function () { $scope.animationsEnabled = !$scope.animationsEnabled; }; });
View
<div class="row" ng-controller="musicViewModel"> <script type="text/ng-template" id="myModalContent.html"> <div class="modal-header"> <h3 class="modal-title">I'm a modal!</h3> </div> <div class="modal-body"> <ul> <li> {{ selected }} // always gets null </li> </ul> </div> </script> </div>
I'd suggest you to pass the scope
of your own controller instead of passing same controller
again, by doing that you can remove the resolve
also.
var modalInstance = $uibModal.open({ templateUrl: 'myModalContent.html', scope: $scope, //passed current scope to the modal size: 'lg' });
Otherwise you need to create a new controller
and assign that controller for modal
while opening it.
When you use resolve, the map is injected into the given controller.
I recommend that u use a different controller to handle the modal functionality (separation of concerns).
I also recommend to use dependency injection to support minification of the code. Step 5 on the Angular tutorial wil explain this.
A simplified example of the modal controller would be.
(function () { 'use strict'; var app = angular.module('App'); app.controller('musicDetailController', ['$scope', '$uibModalInstance', 'items', function ($scope, $uibModalInstance, items) { $scope.items = items; }]); }());
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With