Контроллеры:Как получить доступ к текущему элементу коллекции в дочернем контроллере?
var ProductsCtrl = function ($scope) {
$scope.products = [ {name: 'one'}, {name: 'two'}, {name:'three'} ];
};
var ProductCtrl = function ($scope) {
$scope. // How do I access the current product name?
};
вид:
<ul ng-controller='ProductsCtrl'>
<li ng-repeat='product in products' ng-controller='ProductCtrl'>
</li>
</ul>
Да - но что, если вы делаете общую директиву функцию, предназначенную для компонуемы? В этом случае было бы плохо вводить ограничения на именование переменных области действия в директиве. ng-repeat должен разрешать доступ к директивам «sibling» для имен текущего элемента и текущего списка (возможно, похоже на $ first/$ last). Судя по источнику, было бы очень легко добавить это в ngRepeatDirective .. – LOAS
Директивы Sibling имеют доступ к «продукту» и «продуктам», если одна из директив sibling не определяет область выделения. – ganaraj
Ты меня неправильно понял. У директив братьев и сестер есть доступ, да. Но что, если директивы сиблинга написаны кем-то другим, кто не знает имена имен переменных «элемент в коллекции» в атрибуте ng-repeat в разметке? Эта информация (имя переменной) существует в директиве repeat-директивы, но не отображается в директивах sibling. В настоящее время директивы сиблинга должны анализировать эту информацию из атрибута ngRepeat - что немного надоедает. Не стесняйтесь исправить меня, если есть лучший способ :) – LOAS