2015-04-16 3 views
0

Я хочу открыть модальное объявление модального имени файла и URL-адрес изображения, который я хочу использовать в области модальности. например:Передать переменные в функцию - Угловая

ng-click="showModal('screenshot','http://placehold.it/800x550')" 

Когда я пытаюсь выше я getiing следующее сообщение об ошибке:

Error: [$injector:unpr] Unknown provider: imageUrlProvider <- imageUrl <- ModalController 

Вот код, который я пытаюсь - модальный контроллер:

hmwsApp.controller('ModalController', function($scope, close, imageUrl) { 

    $scope.imageUrl = imageUrl; 

    $scope.close = function(result) { 
    close(result, 500); // close after 500ms to allow for bootstrap to animate 
    }; 

}); 

Главный контроллер:

hmwsApp.controller('mainController', ['$scope', '$http', '$rootScope', 'ModalService', function($scope, $http, $rootScope, ModalService) { 

$scope.showModal = function(modalUrl, imageUrl) { 
    ModalService.showModal({ 
    templateUrl: '/views/modals/' + modalUrl + '.html', 
    controller: "ModalController", 
    resolve: { 
     imageUrl: function() { 
     return imageUrl; 
    } 
    } 
    }) 
    .then(function(modal) { 
    modal.element.modal(); 
    modal.close.then(function(result) { 
     $scope.message = "Image shown " + result; 
    }); 
    }); 
}; 

}]); 

Есть ли какие-либо вещь явно не так?

+0

Вы пытаетесь установить 'imageUrl' как объект, а не примитивно? например: 'разрешение: { imageUrl: function() { return {data: imageUrl}; } } ' –

+0

Мне интересно, как вы можете ввести« закрыть »в свой ModalController, потому что я пробовал его, и он отправил мне сообщение об ошибке« Неизвестный поставщик: closeProvider <- закрыть ». Есть ли путаница? – nnc1311

ответ

4

То, что вы сделали здесь:

hmwsApp.controller('ModalController', function($scope, close, imageUrl) 

впрыскивается imageUrl в контроллер.

Что вы хотите сделать, это создать входные параметры с именем ImageUrl внутри метода контроллера:

hmwsApp.controller('ModalController', function($scope) { 
    $scope.showModal = function(screenshot,imageUrl){ 
     // do something 
    } 
    ...... 
    }); 
+0

Но у меня уже есть эта функция в 'mainController' - вы говорите, чтобы реплицировать ее в' ModalController'? Как мой блок кода будет выглядеть полностью? Извиняюсь, если я что-то упустил, новый для Angular –