javascript - Angular 指令需要访问 ng-repeat 中的变量

标签 javascript angularjs directive

<div ng-repeat="campaign in campaigns">
    <div progressbar="value"></div>
</div>

每个广告系列都有自己独特的属性,称为“百分比”,我希望指令能够访问该属性。

myApp.directive('progressbar', function(){
  return {
    restrict: 'A',
    scope: {
        'progress': '=progressbar'
    },
    controller: function($scope, $element, $attrs) {
        $element.progressbar({
            value: *** I want this to refer to the correct campaign.percent ***
        })
    }
  }
})

我有一种感觉,我在这个问题上想得太多了。任何帮助将不胜感激。谢谢!

最佳答案

您应该更改 HTML 才能传递当前的 campaign指令对象:

<div ng-repeat="campaign in campaigns">
    <div progressbar="campaign"></div>
</div>

然后在指令中您将能够访问事件对象 $scope.progress :

controller: function($scope, $element, $attrs) {
    $element.progressbar({
        value: $scope.progress.percent
    });
}

当然可以传入percent值直接为 <div progressbar="campaign.percent"></div>但我认为提供完整的事件对象是有意义的,以防您需要 percent 之外的其他属性。 .

关于javascript - Angular 指令需要访问 ng-repeat 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26663188/

相关文章:

javascript - 将变量从按钮传递到模态

javascript - 不要在随机淡入/淡出中依次显示相同的 div

javascript - 修改 Angular 表达式中特殊变量的父范围

angularjs - &lt;title&gt; 上的 ng-bind 不起作用

AngularJS 指令范围未及时绑定(bind)

html - 如何访问超过2个DOM元素 "The AngularJS way"?

javascript - 禁用滚动,但保持缩放能力

javascript - 使用逗号分隔值巧妙地获取查询字符串

javascript - Angular 无法正确发送 http post

javascript - 如何从内部指令链接设置选择框的选定值