使用angular-snap和snapjs禁用所有抽屉

西格加

我正在一个需要为移动分辨率和移动设备使用快照菜单的应用程序中工作。

我使用的是snapjsangular-snap,默认情况下,snapjs设置左右两个抽屉,我可以通过使用snapRemote.globalOptions.disable ='right';在angular-snap指令中使用该服务禁用其中一个抽屉在snap-content元素中使用属性snap-opt-disable =“'right'”

我需要禁用非移动分辨率(> = 768px)中的所有抽屉,实际上我有一个检查此分辨率的指令,但是我不知道如何禁用左右两个抽屉,而只能禁用一个抽屉。

这是我的指令:

angular.module('myApp').directive('mobileScreenSwitcher', function ($window, snapRemote) {
        return {
            restrict: 'E',
            link: function (scope) {

                $window.onresize = function () {
                    checkResolution();
                };
                checkResolution();

                function checkResolution() {                
                    var screenWidth = $window.innerWidth;
                    if (screenWidth >= 768) {
                        // I need disable all drawers at this line                
                        snapRemote.globalOptions.disable = 'left';
                    }
                }
            }
        }
    });

这是我实际的html代码

<div ui-view="navBar" snap-drawer="left" ></div>

<div  snap-content snap-opt-disable="'right'">
  ... content here
</div>

<div ui-view="navBar2" snap-drawer="right" ></div>
Scymex

试试这个,

angular.module('myApp').directive('mobileScreenSwitcher', function ($window, snapRemote) {
  return {
    restrict: 'E',
    link: function (scope) {
      snapRemote.getSnapper().then(function(snapper) {
        function onResizeCallback() {
          var screenWidth = $window.innerWidth;
          if (screenWidth >= 768) {
            snapper.close();
            snapper.disable();
          } else {
            snapper.enable();
          }
        }
        $window.addEventListener('resize', onResizeCallback);
        onResizeCallback();
      });

      scope.$on('$destroy', function () {
        $window.removeEventListener('resize' onResizeCallback);
      });
    }
  };
});

以下方法对我有用:

.run(function ($rootScope, snapRemote) {
  snapRemote.getSnapper().then(function(snapper) {
    function onResizeCallback() {
      if (window.innerWidth <= 1024) {
        snapper.enable();
      } else {
        snapper.close();
        snapper.disable();
      }
    }

    onResizeCallback();

    $(window).resize(onResizeCallback);
  });
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Java中使用FileNameExtensionFilter时禁用“所有文件”

如何使用jQuery禁用表单中的所有<input>?

对禁用属性使用Angular ng-attr

Angular Js:通常如何禁用所有按钮和链接?

使用Angular启用/禁用按钮

使用带有Angular2和firebase的Materialize表单添加禁用的选定选项标签

如何使用Angular路由禁用URL更改

希望使用片段从导航抽屉活动移至另一个屏幕以在所有屏幕上显示抽屉

如何使用chromedriver禁用所有chrome扩展

如何遍历交换机的所有端口,并使用python和ssh逐一禁用它们?

Angular 8和使用代理

禁用所有使用ChromeDriver和Selenium的下载

使用AutoHotKey禁用修饰符的所有组合

使用.htaccess禁用目录的所有CGI(php,perl等)

使用Angular抓取所有输入数据

使用jQuery 2.1.3禁用DIV中的所有元素

使用schtasks禁用所有任务

使用premake5禁用特定文件的所有警告

使用任何选中的复选框启用/禁用所有输入和复选框

使用 Angular observable 和 http

使用 Angular 2(+) 和 Node/Express 服务器设置所有 TypeScript 项目

选择所有跨分页和每页显示结果,同时使用 JQuery 禁用和启用按钮

是否可以使用 VueJS 和 BootstrapVue 禁用页面的所有输入?

使用单选按钮禁用所有表单元素

使用该函数,如何禁用和获取 angular 中的 formgroupValues

同时使用 Angular 和 RadialGradient

如何使用 ngFor 和 ngIf 选择 Angular 中的所有复选框?

使用 angular js 当所有字段为空时禁用保存按钮

如何禁用提交按钮,直到使用 html 和 vanilla js 填充所有必填字段