1

我正在尝试在指令中使用 ngRepeat - 但我真的不知道该怎么做。我接近了吗?

Mowers 是我的控制器中使用此指令的一个数组。

.directive('slider', function() {
return function() {
    template: '<slider><film><frame ng-repeat="mower in mowers">{{mower.series}}</frame></film></slider>';
    replace: true;
        scope: true;
    link: function postLink(scope, iElement, iAttrs) {
            // jquery to animate
        }
    }
});
4

1 回答 1

1

是的,你很接近,但语法是关闭的。你需要mowers在你的范围内分配一些东西。

.directive('slider', function() {
return {
    restrict: 'E', //to an element.
    template: '<film><frame ng-repeat="mower in mowers">{{mower.series}}</frame></film>',
    replace: true,
    scope: true, // creates a new child scope that prototypically inherits
    link: function postLink(scope, iElement, iAttrs) {
            scope.mowers = [
               { series: 1 },
               { series: 2 },
               { series: 3 }
            ];
        }
    }
});

此外,您不需要自己引用<slider>

上面的代码还假设您已经为<film>和制定了指令<frame>

最后,如果您想从外部范围传入 mowers 数组,您可以将范围设置更改为:

scope: {
   mowers: '='
}

然后你可以像这样设置它:

<slider mowers="myMowers"></slider>

wheremyMowers是控制器或父指令范围内的变量。

我希望这会有所帮助。

于 2013-02-08T18:15:10.380 回答