在指令中使用包含'start'的属性不起作用

时间:2014-03-26 00:40:47

标签: angularjs angularjs-directive angularjs-scope

我试图将变量传递给指令但是我继续遇到问题,即使在重新排序之后,其中一个不断返回“未定义”值。看起来好像Angular不喜欢在属性名称中使用“start”这个词。

之前有没有人遇到过这个问题?

注意:在下面的示例中,我创建的滑块需要传递4个值

slider.html

<div ab-range-slider slider-start="10000" slider-step="1000" slider-min="10000" slider-max="100000" >
    <div class="slider"></div>
</div>

slider.js

exports
    .directive('abRangeSlider', function () {

        return {
            restrict: 'A',
            scope: {
                sliderStart: '@',
                sliderStep: '@',
                sliderMin: '@',
                sliderMax: '@'
            },
            controller: function($scope, $element) {

                console.log($scope.sliderStart); // returns undefined
                console.log($scope.sliderStep);  // returns 1000
                console.log($scope.sliderMin);   // returns 1000
                console.log($scope.sliderMax);   // returns 100000

                // rest of code here

            }
        };
    });

注意事项:

  1. 即使我更改了变量顺序,也会发生同样的事情。
  2. 如果我将变量名称更改为“slider-strt”,则可以正常工作。

1 个答案:

答案 0 :(得分:0)

如上所述@miqid的答案,这是由1.2

中的设计引入的