Ошибка DialogProvider при создании диалога angularjs

0

Я пытаюсь создать мобильное приложение, где открывается диалоговое окно после нажатия на изображение.

Вот что я сделал до сих пор:

HTML:

        <ion-content ng-controller="cityController">
<div class="container" id="popupContainer">
    <div class="row">
            <div class="col col-33">
                    <img  src="img/images/opera.jpg" ng-click="showTabDialog($event)"/>
              <div class="description" style="font-size: 8pt">Opera de Lyon</div>
         </div>

JS:

angular.module('starter.cityController', ['ionic', 'ngDialog'])
.controller('cityController', function ($scope, $mdDialog, $mdMedia){
   $scope.status = '  ';
  $scope.customFullscreen = $mdMedia('xs') || $mdMedia('sm');

  $scope.showTabDialog = function(ev) {
    $mdDialog.show({
      controller: DialogController,
      templateUrl: 'tabDialog.tmpl.html',
      parent: angular.element(document.body),
      targetEvent: ev,
      clickOutsideToClose:true
    })
        .then(function(answer) {
          $scope.status = 'You said the information was "' + answer + '".';
        }, function() {
          $scope.status = 'You cancelled the dialog.';
        });
  };
});
function DialogController($scope, $mdDialog) {
  $scope.hide = function() {
    $mdDialog.hide();
  };
  $scope.cancel = function() {
    $mdDialog.cancel();
  };
  $scope.answer = function(answer) {
    $mdDialog.hide(answer);
  };
}

Но я получаю сообщение об ошибке:

Error: [$injector:unpr] Unknown provider: $mdDialogProvider <- $mdDialog <- cityController

Шаблон есть. Я знаю, что эта проблема является проблемой некоторой зависимости, но я не могу узнать, какой из них.

Кто-нибудь может помочь?

Теги:
ionic-framework

1 ответ

0
Лучший ответ

Определение контроллера должно быть похоже на

.controller('cityController', ['$scope','$mdDialog','$mdMedia',function ($scope, $mdDialog, $mdMedia){

    // your code will be here

  }])

И, пожалуйста, ngMaterial к вашему угловому модулю, например

angular.module('starter.cityController', ['ngMaterial'])

Если вы не можете включить ngMaterial, используя bower install, добавьте вручную в index.html как

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/angular_material/1.1.0-rc2/angular-material.min.css">
<script src="http://ajax.googleapis.com/ajax/libs/angular_material/1.1.0-rc2/angular-material.min.js"></script>
  • 0
    Нет, у меня все та же ошибка ..
  • 0
    Я отредактировал ответ. вам нужно внедрить угловую зависимость материала в ваше приложение
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню