【问题标题】:Angular material make sidenav modal角材料使sidenav模态
【发布时间】:2015-09-01 08:32:03
【问题描述】:

我是新来的使用有角材料的人,我对放置sidenav modal的可能性有疑问,

今天我尝试使用sidenav,它工作得很好,但我需要另一个选项,我想禁止使用键盘上的“esc”或点击sidenav来关闭这个sidenav。

这是默认情况下使用 sidenav 的示例。 CODEPEN EXAMPLE

//Javascript : from codepen
angular.module('MyApp').controller('AppCtrl', function ($scope,$timeout, $mdSidenav, $mdUtil, $log) {    
$scope.toggleRight = buildToggler('right');

/**
 * Build handler to open/close a SideNav; when animation finishes
 * report completion in console
 */
function buildToggler(navID) {      
  var debounceFn =  $mdUtil.debounce(function(){
        $mdSidenav(navID)
          .toggle()
          .then(function () {
            $log.debug("toggle " + navID + " is done");
          });
      },300);
  return debounceFn;
}})
.controller('RightCtrl', function ($scope, $timeout, $mdSidenav, $log) {
backdrop : 'static',
$scope.close = function () {
  $mdSidenav('right').close()
    .then(function () {
      $log.debug("close RIGHT is done");
    });
};
});

我找到了“backdrop:static”和“keyboard:false”选项,但它不起作用。或者我不知道该怎么做。

如果有人知道解决方案,那就太酷了!

【问题讨论】:

    标签: angularjs modal-dialog angular-material


    【解决方案1】:

    抱歉这么晚才回复...

    我只是忘记了最后一行代码中的两个大括号:

    },300);变成},300)();

    function buildToggler(navID) {      
        var debounceFn =  $mdUtil.debounce(function(){
        $mdSidenav(navID)
        .toggle()
        .then(function () {
            $scope.isLockedOpen = true;
        });
    },300)();
    

    【讨论】:

      【解决方案2】:

      可以在 sidenav 打开后设置 md-is-locked-open 属性。例如。在事件处理程序中使用范围标志:

      function buildToggler(navID) {      
        var debounceFn =  $mdUtil.debounce(function(){
          $mdSidenav(navID)
            .toggle()
            .then(function () {
              $scope.isLockedOpen = true;
            });
        },300);
      ...
      

      然后在你的模板中使用 sth like

      <md-sidenav class="md-sidenav-right" md-component-id="right" md-is-locked-open="isLockedOpen">
      

      【讨论】:

      • 嗨,感谢您的重播 :) 我试过了,但它仍然存在问题:当我将 isLockedOpen 值设置为 true 时,sidenav 不再固定顶部:s 这是正常的吗行为?
      • 抱歉这么晚才回来 - 您的问题解决了吗? “不再是固定顶部”是什么意思?
      • 没问题 ;) 我有一个导航栏顶部,滑块覆盖此导航栏,然后如果我将 isLockedOpen 设置为 true,我的侧边栏将设置在我的导航栏下方。我不知道这是否解释得很好^^
      • 我做到了,但是 isLockedOpen 并不是一个好的选择。 ...这种行为不是我需要的,我将尝试使用背景透明的 div。
      猜你喜欢
      • 1970-01-01
      • 2021-07-22
      • 1970-01-01
      • 2020-09-06
      • 2019-03-30
      • 1970-01-01
      • 1970-01-01
      • 2015-07-15
      • 2017-03-02
      相关资源
      最近更新 更多