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 obj в директивата. Ето какво имам, което НЕ работи:

Променям 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