【问题标题】:Looking for error in angular app that should produce Pop Up window but does not do so在应该产生弹出窗口但不这样做的角度应用程序中寻找错误
【发布时间】:2019-03-23 13:18:09
【问题描述】:

此代码是使用 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>

作为“ng-click”结果调用的 JavaScript 函数:

  $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 不是很流利,所以没有问题太明显而无法指出。

【问题讨论】:

    标签: javascript html angularjs twitter-bootstrap-3 popup


    【解决方案1】:

    您是否检查了模态框是否有 CSS z-index Property

    也许它显示的弹出窗口是主“视图”的“后退”。因此,您可以设置 z-index 属性 =999 或类似的东西。

    示例:

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

    【讨论】:

    • 没有附加到任何网页的 z-index 属性。我确实检查了,弹出窗口没有出现在任何东西后面。它没有出现。引用弹出窗口的 JavaScript 函数位于目录 /scripts/controllers 中。它引用的弹出 URL 位于 ../../views/templates 目录中,以引用 JavaScript 函数。这是否意味着URL目录引用应该不同?
    【解决方案2】:

    pick-chemical-popup.html 在 templateUrl 字段中的位置是否正确?如果是,在ChooseChemicalPopupCtrl 中打断点,看看要显示的数据是否传递正确。

    【讨论】:

    • 没有附加到任何网页的 z-index 属性。我确实检查了,弹出窗口没有出现在任何东西后面。它没有出现。引用弹出窗口的 JavaScript 函数位于目录 /scripts/controllers 中。它引用的弹出 URL 位于 ../../views/templates 目录中,以引用 JavaScript 函数。这是否意味着 URL 目录引用应该不同? ——
    • 到目前为止还没有帮助的答案。请帮忙。
    • 您为什么不创建您的代码的 plnkr 并与我们分享?
    猜你喜欢
    • 2015-06-09
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-07
    • 2015-05-28
    相关资源
    最近更新 更多