Angular Directive需要访问ng-repeat中的变量

时间:2014-10-30 20:59:43

标签: javascript angularjs directive

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

每个广告系列都有自己独特的属性,名为&#34;%&#34;我希望该指令能够访问。

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 ***
        })
    }
  }
})

我有一种感觉,我正在严厉地过度思考这个。任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

您应该更改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之外的其他一些属性。