使用 angular-snap 和 snapjs 禁用所有抽屉
Disable all drawers with angular-snap and snapjs
我正在开发一个需要移动分辨率和移动设备的快照菜单的应用程序。
我正在使用 snapjs and angular-snap,snapjs 默认设置左右两个抽屉,我可以使用 angular-snap 指令中的服务禁用其中一个抽屉 snapRemote.globalOptions.disable = 'right'; 或在 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>
试试这个,
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);
});
});
我正在开发一个需要移动分辨率和移动设备的快照菜单的应用程序。
我正在使用 snapjs and angular-snap,snapjs 默认设置左右两个抽屉,我可以使用 angular-snap 指令中的服务禁用其中一个抽屉 snapRemote.globalOptions.disable = 'right'; 或在 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>
试试这个,
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);
});
});