Angularjs材质对话框不起作用

时间:2015-11-23 09:40:57

标签: angularjs angular-material

我有一个项目数组,我想在对话框中输出。我没有收到错误,但它也没有。

    $scope.showDialog = function (ev) {
      $mdDialog.alert({
        controller: 'DialogController',
        controllerAs: 'DiaCtrl',
        templateUrl: 'softwareused.tmpl.html',
        parent: angular.element(document.body),
        targetEvent: ev,
        locals: {
          items: cvLibsUsed
        }
  });
};

这应该按照指出here打开警告对话框 当我尝试demo code时,我收到了错误,那就是"警告"没有定义。

模板如下所示:

<md-dialog aria-label="Software used">
<md-dialog-content>
    <h2>Software used</h2>
    <ul>
        <li ng-repeat="cur in locals.items"><a ng-href="{{cur.url}}">{{cur.desc}}</a> - (<a
                ng-href="{{cur.licenceUrl}}">{{cur.licence}}</a>
            )
        </li>
    </ul>
</md-dialog-content>
<md-dialog-actions layout="row">
    <md-button class="md-icon-button" ng-click="close()" aria-label="Close dialog" md-autofocus>
        Close
    </md-button>
</md-dialog-actions>

知道我在这里做错了吗?没有AngularJS错误,没有对话框。

谢谢:)

2 个答案:

答案 0 :(得分:4)

就我而言,我可以跟踪调试器中$ mdDialog.show()方法调用的调用,并且控制台中没有出现错误,但没有出现对话框。它被证明是一个CSS问题,我使用的模板包含的元素的z-index高于构成MD对话框的组件所使用的z-index,有效地模糊了对话框消息。

以下CSS规则更新是解决问题的一种方法(基于我不想触及模板本身):

void*

答案 1 :(得分:3)

您应该使用 $mdDialog.show 而不是 $mdDialog.alert

 $scope.showDialog = function (ev) {
      $mdDialog.show({
        controller: 'DialogController',
        controllerAs: 'DiaCtrl',
        templateUrl: 'softwareused.tmpl.html',
        parent: angular.element(document.body),
        targetEvent: ev,
        locals: {
          items: cvLibsUsed
        }
  });

以下是mdDialog

示例