我有一个指令如下:
<selectable-item-list items="model.items">
<item-template>
<span ng-bind="item.text"></span>
</item-template>
</selectable-item-list>
问题在于,当内部绑定在其中时,当前迭代项的引用<item-template>在哪里。itemng-repeat<selectable-item-list>
AFAIK,似乎嵌入无法看到指令的范围,因此,它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>