2016-02-21 4 views
2

У меня есть директива, которая используется для отображения данных одного пользователя.Угловая вложенная директива рендеринга через ng-repeat

<user-directive></user-directive/> 

У меня есть другая директива, в которой содержится многократная коллекция по пользовательской директиве.

<!-- has some other stuff then the user collection --> 
<user-directive ng-repeat="user in vm.users" user="user"></user-directive> 

Я попытался установить сферы в директиве одного пользователя, но я не могу показаться, чтобы получить шаблон для заполнения с пользовательскими данными из ретранслятора.

пользователя объекта директива:

return { 
      // template etc 
      scope : { user: '=' } 
     } 

пользователя шаблон директива:

<h1>{{user.name}}</h1> 

Любые идеи?

См. fiddle here для воспроизведения эффекта.

+0

вы можете предоставить скрипку или plunkr с твердыми закодированными данными пользователя в и массив или что нибудь? –

+0

Возможно, вам следует изменить имя пользователя в vm.users' (возможно, на 'описаноUser' или что-то в этом роде), поскольку он, похоже, сталкивается с' user' из директивы –

+0

@JohnDoe, что не имеет смысла ... OP пытается получить доступ к тому же «пользователю», который создает 'ng-repeat' – charlietfl

ответ

2

См. Образец here.

Код:

HTML:

<div ng-app="app" ng-controller="test as vm"> 
    <div test-dir="user" ng-repeat="user in vm.users"> 
    </div> 
</div> 

JS:

var app = angular.module('app', []); 

app.controller('test', function ($scope) { 
    var vm = this; 
    vm.users = [ 
    { 'Name': 'Abc', 'Id': 1 }, { 'Name': 'Pqr', 'Id': 2 }, { 'Name': 'XYZ', 'Id': 3 } 
    ]; 

    $scope = vm; 
}); 

app.directive('testDir', function() { 
    return { 
     scope: { user: '=testDir' }, 
     template: "<div><h4>{{user.Id}}) {{user.Name}}</h4></div>" 
    } 
}); 
Смежные вопросы