在角度指令中对儿童进行观察?

时间:2015-04-13 22:37:56

标签: jquery angularjs angular directive children

是否可以使用$ observe?

在指令中观看儿童的钟声

我有这个HTML,用我的"监视器"指令。

<monitor>
    <div class="panel panel-default">
        <div class="panel-heading">
            <i class="fa fa-desktop"></i> Monitor <expand class="pull-right"><button class="btn btn-info btn-xs" ng-click="expand()"><i class="fa fa-expand"></i></button></expand>
        </div>
        <div class="panel-body monitor-blink">
            <h4 class="alert-title no-margin">No monitoring </h4>
        </div>
    </div>
</monitor>

<div class="panel panel-default">将成为<div class="panel panel-default expand">,并且当我添加该类时,我会尝试在我的dom中进行更改。

我想过强制申请$但是一直试图用$ observe来解决这个问题。我如何在子属性上观察$ observer?

喜欢这个吗?

attr.$observe(attrs, function(key, val) {
    // Do stuff
});

$observer的第一个参数是什么?那就是我被困的地方

1 个答案:

答案 0 :(得分:2)

不,$oberve是要注意指令上的插值绑定(例如some-dynamic-attribute="{{someValue}}")。

我不知道这个子类是如何设置的,但是你有两个场景:要么是由Angular设置的,在这种情况下你应该搜索导致angular设置这个类的原因,然后观察同一个事件。

或者,如果它是由第三方库设置的,您可以执行以下操作:

var theChildElement = ...;
scope.$watch(function() { return theChildElement.className; }, function(className) {
  // className is the list of classes of that child element, called every time this list changes
});

这样可行,但是如果你有一个很大的角度应用程序,观察者可能会有点贵。在一个小的,它应该不是一个问题。