角度模板并传入对象变量名称

时间:2014-10-25 04:55:48

标签: javascript angularjs

我有以下代码

 <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 或例如项目

1 个答案:

答案 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>