子指令访问每个父指令

child directive access every parent directive

本文关键字:指令 访问      更新时间:2023-09-26

我正在尝试在angularJS中做一个slider。我有一个带有事件侦听器的子指令。当主事件(mousedown)被侦听时,它从父指令调用一个函数(通过控制器)并改变各种html元素的样式。当页面上只有一个指令时,它的工作方式类似于一个超级按钮。如果有多个,则调用每个父控制器。我不明白为什么。

Plknr: http://plnkr.co/edit/9vGXxjDbqqEOzLcXRkoW?p=preview

父指令:

return {
        restrict: 'EA',
        scope: {
            sliderStep: '@',
            sliderBothHandles: '@',
            sliderMinVal: '=', //value min handle
            sliderMaxVal: '=', //value max handle
            sliderMin: '@', //minimum value authorized
            sliderMax: '@' //maximum value authorized
        },
        templateUrl: 'slider_template',
        controller: sliderController,
        transclude: true
};

子指令:

return {
        restrict: 'EA',
        link: link,
        require: '^mcsSlider',
        scope: true
};

标记:

<mcs-slider slider-step="1" slider-max-val="formCtrl.value1" slider-min="0" slider-max="7200">
   <div mcs-slider-handle class="slider-handle max-slider-handle round" aria-valuemin="0" aria-valuemax="7200" aria-valuenow="{{formCtrl.value1}}" tabindex="0" style="left:0%;"></div>
</mcs-slider>

问题似乎出在指令mcsSliderHandle 中,在 $interval 函数中。您正在使用$('.min-slider-handle'),它将找到该类的所有元素!您只需检索当前指令中的元素。错了,但在这里工作