将变量传递给函数 - Angular

时间:2015-04-16 08:02:00

标签: javascript angularjs

我想打开一个声明模态文件名的模态,以及我想在模态范围内使用的图像网址。例如:

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

当我尝试上述操作时,我会出现以下错误:

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;
    });
  });
};

}]);

有什么明显的错误吗?

1 个答案:

答案 0 :(得分:4)

你在这里做了什么:

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

imageUrl注入您的控制器。

你想要做的是在控制器方法中创建一个名为imageUrl的输入参数:

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