child指令访问每个父指令

时间:2016-01-20 11:00:33

标签: javascript angularjs angularjs-directive

我正在尝试在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>

1 个答案:

答案 0 :(得分:1)

问题似乎在mcsSliderHandle函数中的指令$interval内。 您正在使用$('.min-slider-handle')来查找该类的所有元素! 您只需要检索当前指令中的元素。 错误但正在工作的人员here