Ищем ошибку в угловом приложении, которое должно генерировать всплывающее окно, но не делает этого - PullRequest
0 голосов
/ 18 октября 2018

Этот код был написан с использованием angularJS и Bootstrap 3.1.1.

HTML-код релевантности:

<a href="" ng-hide="readonly" ng-click="chooseChemicalPopup(stepIndex,$index)">
{{constituent.chemical.name}}
<span ng-show="constituent.chemical.name">(edit)</span>
<span ng-hide="constituent.chemical.name>(click to choose) </span>
</a>

Функция JavaScript, которая вызывается в результате «ng-click»:

  $scope.chooseChemicalPopup = function (stepIndex, constituentIndex) { 
var modalInstance = $uibModal.open({
        templateUrl: '/views/templates/pick-chemical-popup.html',
        controller:  'ChooseChemicalPopupCtrl',
        size: '',
        resolve: 
        {
           chemicals: function () {
           return $scope.chemicals;
        },
        selected: function () 
        {
           return {
              chemical: $scope.record.steps[stepIndex].constituents[constituentIndex].chemical
                  };
        }
        }       
            });

    modalInstance.result.then(function (selectedItem) {
       $scope.record.steps[stepIndex].constituents[constituentIndex].chemical = selectedItem; 
 });  
});  

Контроллер:

angular.module('cpdApp').controller(
         'ChooseChemicalPopupCtrl', function($scope, $uibModalInstance,chemicals,selected) {

   $scope.chemicals = chemicals;
   $scope.selected = selected;

   $scope.ok - function() {
      $uibModalInstance.close($scope.selected.chemical);
   };
   $scope.cancel = function() {$uibModalInstance.dismiss('cancel'); };
});

Я установил точку останова в функции JavaScript.Функция chooseChemicalPopup действительно выполняется, но ChooseChemicalPopupCtrl не выполняется, и всплывающий HTML-код никогда не появляется.Кто-нибудь видит что-нибудь очевидное?Я унаследовал этот код, поэтому не могу ответить ни на что.Я скажу вам, что в этом коде есть ровно два всплывающих окна, и ни одно из них не появляется.Как ChooseChemicalPopup, так и ChooseChemicalPopUpCtrl находятся в одном и том же файле Javascript.Я публиковал это раньше, не упоминая контроллер, который, кажется, никогда не запускается, и теперь я изменил пост, чтобы добавить эту проблему.Спасибо за ваше время.Я не очень хорошо знаю AngularJS или Bootstrap, так что нет проблем, на которые можно было бы обратить внимание.

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Правильно ли расположено pick-chemical-popup.html в поле templateUrl?Если да, установите точку останова в ChooseChemicalPopupCtrl и посмотрите, правильно ли передаются данные, которые должны отображаться.

0 голосов
/ 18 октября 2018

Вы проверили, что модал имеет CSS z-index Property?

, возможно, всплывающее окно, которое он показывает, но "назад" основного "вида".так что вы можете поместить свойство z-index = 999 или что-то в этом роде.

пример:

<div id="popup" style="z-index: 999;">
...
</div>
...