将ng-repeat上下文传递给child指令

时间:2015-10-22 03:12:15

标签: angularjs angularjs-directive angularjs-ng-repeat

在我的部分应用中,我使用了这种格式的指令:

<child-directive ng-repeat="item in vm.items"></child-directive>

此人可以{{item}}child-directive访问<div ng-repeat="item in vm.items"> <child-directive></child-directive> <other-directive></other-directive> </div> ,无需执行任何操作。

现在我想在所有使用相同上下文数据的其他指令中使用相同的指令:

scope

子指令不需要改变上下文数据,它只需要来自内部的信息来显示一个小部件。

我已尝试在此格式的指令中使用angular .module('myapp.dashboard') .directive('childDirective', childDirective); function childDirective() { var directive = { restrict: 'E', templateUrl: 'client/components/child-directive.ng.html', controller: 'ChildDirectiveController', controllerAs: 'vm', scope: { item: '=' } }; return directive; }

<child-directive ng-attr-item="{{item}}"></child-directive>

ng-repeat

ng-bind部分内。然而,这只会引发错误。

我也试过{{1}}而没有运气。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

您正在使用双向范围绑定而不是插值属性。您可以阅读更多in the angular docs

将范围对象更改为:

scope: {
  item: '@'
}

,将模板更改为:

<child-directive ng-attr-item="item"></child-directive>