如何在角度材质对话框的内容中显示下拉/下拉列表/选择列表?

时间:2016-09-22 11:45:46

标签: javascript angularjs angular-material

我是AngularJS的新手,我正在使用Angular MaterialDialog自定义对话框来显示弹出对话框。

现在我能够显示对话框,但问题是我无法在对话框的<md-dialog-content>标记内显示下拉列表。

单击按钮时显示对话框。我从上面添加的链接复制的最小化代码:

$scope.onClicked = function(ev) {
        $mdDialog.show({
            controller: DialogController,
            templateUrl: 'app/html/printDialog.html',
            parent: angular.element(document.body),
            targetEvent: ev,
            clickOutsideToClose:true,
            fullscreen: $scope.customFullscreen
        })
            .then(function(answer) {
                $scope.status = 'You said the info was "' + answer + '".';
            }, function() {
                $scope.status = 'You cancelled the dialog.';
            });
    }

现在 printDialog.html (也已复制并将文件名更改为我的全部需求):

<md-dialog aria-label="Print Report">
    <form ng-cloak>
        <md-toolbar>
            <div class="md-toolbar-tools">
            The toolbar or headers
        </div>
    </md-toolbar>

    <md-dialog-content>
        <div class="md-dialog-content">
        All the contents goes here
        </div>
    </md-dialog-content>

    <md-dialog-actions layout="row">
        All the dialog actions goes here
    </md-dialog-actions>
</form>

现在,如何在此对话框中显示带有默认选定项目的下拉可选列表。

任何帮助都会让我非常感激。

1 个答案:

答案 0 :(得分:1)

这是一个非常简单的例子 - CodePen

标记

<div ng-controller="MyController as vm" id="popupContainer" ng-cloak="" ng-app="app">
   <md-button class="md-primary md-raised" ng-click="vm.open($event)">
      Open
    </md-button>
  <script type="text/ng-template" id="printDialog.html">
    <md-dialog aria-label="Print Report">
        <form ng-cloak>
            <md-toolbar>
                <div class="md-toolbar-tools">
                The toolbar or headers
            </div>
        </md-toolbar>

        <md-dialog-content>
            <div class="md-dialog-content" layout="column">
            All the contents goes here
            <md-input-container>
              <label>Select Beatle</label>
              <md-select ng-model="chosenOption">
                <md-option ng-repeat="option in options" ng-value="option">
                {{option}}
                </md-option>
                </md-select>
            </md-input-container>

            </div>
        </md-dialog-content>

        <md-dialog-actions layout="row">
            All the dialog actions goes here
        </md-dialog-actions>
    </form>
    </md-dialog>
  </script>
</div>

JS

angular.module('app',['ngMaterial', 'ngMessages', 'material.svgAssetsCache'])

.controller('MyController', function($scope, $mdDialog) {
  this.open = function(ev) {
    $mdDialog.show(
      {
        templateUrl: "printDialog.html",
        clickOutsideToClose: true,
        controller: DialogController,
    });
  };

  function DialogController($scope, $mdDialog) {
    $scope.options = ["john", "paul", "george", "ringo"];
    $scope.chosenOption = "ringo"; // default

    $scope.$watch("chosenOption", function (newValue) {
      if (angular.isDefined(newValue)) {
        console.log(newValue);
      }
    });

    $scope.hide = function() {
      $mdDialog.hide();
    };

    $scope.cancel = function() {
      $mdDialog.cancel();
    };
  }
})
相关问题