当前位置: 首页 > 面试题库 >

AngularJS $ watch窗口内部尺寸调整指令

扈韬
2023-03-14
问题内容

我有显示如下的模块模式:

'use strict';

angular.module('app', [])
   .directive('myDirective', ['SomeDep', function (SomeDep) {
       var linker = function (scope, element, attr) {
          // some work
       };

       return {
          link: linker,
          restrict: 'E'
       };
   }])
;

我遇到的麻烦是将$ watch集成到其中。通过“ $ window”服务专门监视窗口的大小。

[编辑]:

我意识到这一直是我的问题…当我忘记将其实现为属性时,我只能使用element … @ _ @;


问题答案:

您不需要手表。只需绑定到窗口上的大小调整事件:

演示

'use strict';

var app = angular.module('plunker', []);

app.directive('myDirective', ['$window', function ($window) {

     return {
        link: link,
        restrict: 'E',
        template: '<div>window size: {{width}}px</div>'
     };

     function link(scope, element, attrs){

       scope.width = $window.innerWidth;

       angular.element($window).bind('resize', function(){

         scope.width = $window.innerWidth;

         // manuall $digest required as resize event
         // is outside of angular
         scope.$digest();
       });

     }

 }]);


 类似资料:
  • 所属类别 交互(Interactions) 用法 描述:使用鼠标改变元素的尺寸。 版本新增:1.0 依赖: UI 核心(UI Core) 部件库(Widget Factory) 鼠标交互(Mouse Interaction) 注释:jQuery UI 可调整尺寸(Resizable)插件让被选元素可调整尺寸(意味着它们有可拖拽的调整大小的手柄)。您可以指定一个或多个手柄,也可以指定宽度和高度的最小

  • 我的用例 null 问题 然而,如果我没有理解错的话,这将意味着由于滑动窗口的性质,单个事件将产生7*24*6=1008个记录。所以我的问题是,我如何才能减少纯粹的数额?

  • 窗口大小,我们可以非常方便的使用width、height调整,但是如何知道 width和height是一个问题? 在 Window 操作系统中,假如我们想要缩放,我们通常会把鼠标移动到窗口的右边栏,和底部边栏,以及右下边栏。 而且在不同的边栏,鼠标呈现的样式也是不一样的。当我们在右边栏的时候我们可以通过cursor: e-resize;模拟鼠标样式。 在底部边栏我们可以通过cursor: s-re

  • #include <stdio.h> void fun1(void) { int i = 0; i++; i = i * 2; printf("%d\n", i); } void fun2(void) { int j = 0; fun1(); j++; j = j

  • pre { white-space: pre-wrap; } jQuery EasyUI 插件 通过 $.fn.resizable.defaults 重写默认的 defaults。 用法 通过标记创建可调整尺寸(resizable)对象。 <div data-options="maxWidth:800,maxHeight:600"> </div> 使用 javascript 创建可调整

  • 我正在尝试构建一个包含6个窗格(作为父级添加到GridPane布局中)的简单Java项目。我必须在开始时设置窗口大小,并通过参考根布局的宽度和高度,设法将它们均匀地拆分。 但我想要他们调整大小,因为我改变了窗口的大小(使用鼠标,现在他们得到固定的大小)。 下面是我的代码: