在Angular JS指令中检索css值

时间:2014-07-26 21:46:50

标签: javascript css angularjs

我是Angular JS的新手,我尝试将一些封装的指令写入样式按钮组。我有一个“restrict:'A'”指令,我需要在其中检索父级的填充以获得内部可用。我也试着避免使用JQuery。 Angular JS看起来非常整洁,我不想搞砸这种感觉。 简而言之,我的链接功能包含以下内容:

parentScope = element.parent().scope();
parentScope.$watch(parentHeight = element.parent()[0].css("padding"), function(newValue, oldValue, scope){
   var parentHeight = element.parent()[0].offsetWidth,
   parentPadding = newValue;
}

我一直收到一个未定义的错误。 在指令中访问css值的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

$ watch应该被赋予范围成员(字符串)或函数(https://docs.angularjs.org/api/ng/type/$rootScope.Scope)的名称。如果它是成员名称,它将对其变化做出反应,如果它是函数,它将对其返回值的变化作出反应。 assign的结果是赋值,所以你实际上是在特定时刻传递padding值来观察,而你应该传递一个成员名称或函数。 您应该传递一个返回填充值的函数,如下所示:

parentScope.$watch(
  function() { 
    return element.parent()[0].css("padding"); 
  }, function(newValue, oldValue, scope) {
    var parentHeight = element.parent()[0].offsetWidth,
    parentPadding = newValue;
  });