Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用“角度捕捉”和“捕捉”禁用所有抽屉_Javascript_Angularjs_Angular Directive_Snap.js - Fatal编程技术网

Javascript 使用“角度捕捉”和“捕捉”禁用所有抽屉

Javascript 使用“角度捕捉”和“捕捉”禁用所有抽屉,javascript,angularjs,angular-directive,snap.js,Javascript,Angularjs,Angular Directive,Snap.js,我在一个需要移动分辨率和移动设备快照菜单的应用程序中工作 我正在使用和,默认情况下,snapjs设置了两个抽屉(左抽屉和右抽屉),我可以使用angular snap指令中的服务禁用其中一个抽屉,snapRemote.globalOptions.disable='right';或者在快照内容元素中使用属性snap opt disable=“'right'” 我需要禁用非移动分辨率(>=768px)中的所有抽屉,实际上我有一个检查此分辨率的指令,但我不知道如何禁用两个抽屉,左侧和右侧,而只禁用一个抽

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

我正在使用和,默认情况下,snapjs设置了两个抽屉(左抽屉和右抽屉),我可以使用angular snap指令中的服务禁用其中一个抽屉,snapRemote.globalOptions.disable='right';或者在快照内容元素中使用属性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>

... 满足于此
试试这个

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);
  });
});
.run(函数($rootScope,snapRemote){
snapRemote.getsnaper().then(函数(snaper){
函数onResizeCallback(){
如果(window.innerWidth