Después de de esta larga búsqueda de información pudimos resolver este conflicto que presentan ciertos los usuarios. Te regalamos la respuesta y esperamos resultarte de mucha ayuda.
Solución:
Para pasar el parámetro, debe usar resolver e inyectar los elementos en el controlador
$scope.Edit = function (Id)
var modalInstance = $modal.open(
templateUrl: '/app/views/admin/addeditphone.html',
controller: 'EditCtrl',
resolve:
editId: function ()
return Id;
);
Ahora si vas a usar así:
app.controller('EditarCtrl', ['$scope', '$location'
, function ($scope, $location, editId)
in this case editId will be undefined. You need to inject it, like this:
app.controller('EditCtrl', ['$scope', '$location', 'editId'
, function ($scope, $location, editId)
Now it will work smooth, I face the same problem many time, once injected, everything start working!
The other one doesn’t work. According to the docs this is the way you should do it.
angular.module('plunker', ['ui.bootstrap']); var ModalDemoCtrl = function ($alcance, $modal) var modalInstance = $modal.open( templateUrl: 'myModalContent.html', controlador: ModalInstanceCtrl, resolve: test: function () return 'test variable'; ); ; var ModalInstanceCtrl = function ($alcance, $modalInstance, prueba) $alcance.prueba = prueba; ;
Ver plunkr
Alternativamente, puede crear un nuevo alcance y pasar a través de parámetros a través de la opción de alcance
var scope = $rootScope.$new();
scope.params = editId: $scope.editId;
$modal.open(
scope: scope,
templateUrl: 'template.html',
controller: 'Controller',
);
En su controlador modal pase $ alcance, entonces no necesita pasar y itemsProvider o lo que sea que haya resuelto que lo haya llamado
modalController = function($scope)
console.log($scope.params)
Comentarios y calificaciones
Recuerda algo, que tienes concesión de agregar una reseña si te ayudó.