微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

angularjs – mdbottomsheet禁用向下拖动以关闭

我想禁用向下拖动以关闭mdbottomsheet的手势.我找到了一个关于脚本的工作,但我不确定在哪里放置代码.谢谢您的帮助.

解决方法

正如你所说,angular-material没有提供禁用它的任何选项,显然你必须对其源代码进行更改.

现在,您还没有提到是否要在特定位置禁用它,或者在所有地方为bottomSheets转向向下拖动.

1)如果是后者,它将非常简单,因为你唯一需要做的就是删除拖动事件的事件监听器.
如果您使用angular-material.js文件,那么您可以做什么:

找到函数BottomSheet(element,parent).此函数基本上注册关闭工作表的拖动事件.我们需要让它不附加听众.

减少它:

function BottomSheet(element,parent){
   return {
      element: element,cleanup: angular.noop
    };
}

清理函数基本上在拖动事件上取消注册侦听器.当底层的范围被销毁时调用函数.为了进行微小的更改,我们只是简化了清理功能,无所事事.

2)如果您希望能够在控制器中创建工作表时传递选项,则执行相同的操作,但有条件地基于您传递的选项.不要写代码因为我假设你知道角度是如何工作的,但是这里是步骤:

=>添加一个布尔变量以及其他选项(模板,范围等).让我们称之为dragDownToClose.

=>在MdbottomSheet的提供程序函数内的认注入器函数中,为其分配认值(true / false).

=>在onShow函数内实例化BottomSheet()期间,将它与元素和父元素一起传递.

=>所以BottomSheet()现在有三个参数 – dragDownToClose是新的参数.

=>正如我们在前一种情况下所做的那样,当值为false时返回没有附加任何处理程序的元素,并让原始函数为true时.

当然,有多种方法可以实际实现这一点.但是,我希望你能得到这个想法.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐