AngularJS在$ watch函数中访问DOM

时间:2014-03-10 21:45:13

标签: angularjs angularjs-directive watch

我正在制作一个指令,根据控制器的变化调整div的大小。当模型发生变化时,我需要计算浏览器窗口中剩余的可用空间量。如何将元素从链接函数传递到$ watch函数?

简而言之,我如何根据模型的变化来操纵DOM?

    var module = angular.module('cmsApp')
      module.directive("changeWidth", function($timeout) {
        return {
          restrict: 'A',
          link: function($scope, element, attrs) {
             width = element.width();
             $scope.$watch('currentFolder', function(value){
                // manipulate dom  here
              });

          }
        }
      });


      <!-- need to calculate the size of this -->
      <div change-width class="col-md-9 right-pannel"></div>

1 个答案:

答案 0 :(得分:0)

我认为Angular甚至不会根据您的模板代码执行您的指令。它应该是

<div change-width class="col-md-9 right-pannel"></div>

如果您不熟悉Angular,我知道这是一个错误来源。来自文档:

  

Angular使用name-with-dashes作为自定义属性和camelCase   对于实现它们的相应指令)