我有以下代码
<div data-ng-repeat="entity in myItems">
<div data-entity-vignette="true">
</div>
</div>
实体Vignette在此处定义为属性指令:
.directive('entityVignette', function() {
return {
restrict: 'A',
templateUrl: '../Assets/Scripts/entityVignette.html'
}
});
和entityVignette.html包含
<div>{{ entity.DisplayName }}</div>
我的问题是,如何对我的模板进行编码,以便entityVignette.html
不依赖于变量名称entity
也就是说,要使用我的实体变量,我必须使用data-ng-repeat="entity in myItems"
,我怎么能让它工作,以便enitityVignette.html不关心它是否被命名为 entity 或例如项目?
答案 0 :(得分:1)
一种方法是隔离指令的范围。例如,声明你这样的指令:
.directive('entityVignette', function() {
return {
restrict: 'A',
scope: {nameToDisplay:'='},
templateUrl: '../Assets/Scripts/entityVignette.html'
}
});
像这样使用:
<div data-ng-repeat="entity in myItems">
<div data-entity-vignette="true" data-name-to-display="entity.DisplayName">
</div>
</div>
在你的模板中,只需这样做:
<div>{{ nameToDisplay }}</div>