【发布时间】:2015-12-09 22:40:01
【问题描述】:
我有以下问题:
我有一个自定义指令,它通过在模板字符串中使用 ng-repeat 来显示一个或多个表。在每个表中,放置了几个其他自定义指令。我希望这些知道所用元素的索引,但无法完成这项工作。我的代码现在看起来像这样:
.directive('myStuffText', function ($rootScope){
return {
restrict: 'A',
require: '^form',
replace: true,
scope: true,
template:
......
'<table border="1" ng-repeat="elt in myModel.newStuffList">
......
'<tr>' +
'<td colspan="3"><div my-add-some-editor my-element-index="$index"/></td>' +
'</tr>'
'</table>',
link: function (scope, elt, attrs){
scope.cockpitPolicyModel.newPolicyList = [];
}
};
})
独立于我的尝试,我总是在 my-add-some-editor 指令的模板函数中获取字符串 $index 或 {{$index}},而不是它的值..
编辑 - 添加嵌套指令:
.directive('myAddSomeEditor', function($rootScope){
return {
restrict: 'A',
require: '^form',
scope: true,
template: function ($scope, $attr){
return
.....
'<span id="myAddSomeEditor" name="myAddSomeEditor" class="form-control" my-generic-editor '+
'my-input-mapping="myModel.someText"></span>'
.....
;
}
};
})
【问题讨论】:
-
能否也添加嵌套指令
my-add-some-editor -
试试
$parent.$index -
一些建议 - 如果您提供像上面那样的内联模板,那么您应该使用 join ,因为它更好一点,但归结为个人喜好。模板:['', ''].join('') 另外 - 你应该在你的 ng-repeat 中使用
Hello World
', 'track by $index,因为它是推荐的为了表现。 ng-repeat="elt in myModel.newStuffList track by $index" -
您的代码与您的问题无关。至少显示“那些”嵌套指令中的一个或“myStuffText”是其中之一怎么样?
-
刚刚编辑了问题以添加嵌套指令
标签: angularjs angularjs-directive angularjs-ng-repeat