Angular: передать элемент ng-repeat в директиву

Как передать весь объект ng-repeat в директиву (или как установить область действия директивы для элемента ng-repeat)?

Я новичок в angular и мне трудно понять это.

У меня есть контроллер, который отлично отображает следующее:

<div class="img-wrap" ng-repeat="image in images">
    <p>{{image.title}}</p>
    <img ng-src="{{image.thumbUrl}}" />
</div>

Что я хотел бы сделать, так это превратить внутреннюю часть в директиву и передать объект image в директиву. Вот что у меня НЕ работает:

Я меняю html на:

<div class="img-wrap" ng-repeat="image in images">
  <image />
</div>

И тогда у меня есть эта директива:

angular.module('openart')
.factory('image',  function () {
    return {
        restrict:'E',
        controller:['$scope',function($scope){

        }],
        template:'<p>{{title}}</p><img ng-src="{{thumbUrl}}" />',
        link:function(scope,el,attrs){

        }
    };
});

person Micah    schedule 19.12.2013    source источник
comment
завод не является директивой, насколько я знаю)   -  person hawk    schedule 20.12.2013
comment
@hawk, ха-ха, вот почему я ненавижу/люблю/ненавижу программирование. хороший улов, спасибо!   -  person Micah    schedule 20.12.2013


Ответы (1)


Вы должны каким-то образом предоставить объект изображения вашей директиве. Для этого вам нужно установить его в рамках вашей директивы, что-то вроде этого:

scope: {image:"="}

Вот рабочий jsfiddle

person Yaroslav Yakovlev    schedule 20.12.2013
comment
Можете ли вы как-то изменить изображение в области видимости, но внутри вложенного контроллера?? контроллер: ['$scope', function($scope){ console.log($scope); }] - person Bisonfan95; 09.12.2015