我尝试创建自定义指令并将数组发送到其中以创建动态模板。我看过这两个问题:
Binding array to directive variable in AngularJS
Passing array via attribute to AngularJS directive
我基本上使用相同的代码但是当我在控制台登录tAttrs
时,它只显示"testArray"
而不是Array(2)
的标签,因为它应该是{{1}正确解释。
从我所看到的,我没有做错任何事情,所以它有点让我疯狂,为什么它不起作用。
有人可以指出为什么这不能按预期工作吗?
包含数组的控制器:
tags="testArray"
指令标记:
forumApp.controller('profileCtrl', ['$scope', function($scope) {
$scope.testArray = ['displayName', 'email'];
}
指令:
<error tags="testArray"></error>
答案 0 :(得分:0)
如果您要将数组放在隔离范围内,则不再需要tAttrs
:
template: function(tElement) {
return "<div ng-if='row.model === " + tags[0] + "'>Hello world</div>";
}
上述模板将在隔离范围内查找tags
。 tAttrs
正在从元素中提取 raw 属性。