У меня есть следующая директива:
<selectable-item-list items="model.items">
<item-template>
<span ng-bind="item.text"></span>
</item-template>
</selectable-item-list>
Проблема заключается в <item-template>
, где item
будет ссылкой на текущий итерируемый элемент, когда внутренний ng-repeat
связан внутри <selectable-item-list>
.
Насколько мне известно, кажется, что включения не могут видеть область действия директивы, поэтому item.text
не может быть привязано, потому что item
вообще нет.
Как бы вы решили этот сценарий? Раньше я вручную включал <item-template>
, но у другого подхода были другие недостатки/проблемы.
Вот фрагмент исполняемого кода, который работает как образец моего реального случая:
var app = angular.module("app", []);
app.controller("some", function() {
this.items = [{
text: "hello"
}, {
text: "bye"
}];
});
app.directive("test", function() {
return {
template: `<ol>
<li ng-repeat="item in items">
<div ng-transclude="itemTemplate"></div>
</li>
</ol>`,
transclude: {
"itemTemplate": "itemTemplate"
},
scope: {
"items": "="
}
}
});
<script src="https://code.angularjs.org/1.5.7/angular.js"></script>
<div ng-app="app" ng-controller="some as some">
<test items="some.items">
<item-template>
<span ng-bind="item.text"></span>
</item-template>
</test>
</div>
selectable-item-list
иitem-template
. Это может облегчить мою голову. - person Matt Lishman   schedule 08.07.2016item
нельзя получить доступ из шаблона элемента.... - person Matías Fidemraizer   schedule 08.07.2016