我有两个指令,我想要计算父亲标签中有多少儿子并在index.html中显示计数器,如JS文件后所示,问题是我没有正确获取数字
module.directive('directiveFather', function () {
return {
restrict: 'E',
scope: {},
controller: function ($scope) {
$scope.AllCounter = 0;
this.addCounter = function () {
$scope.AllCounter = $scope.AllCounter + 1;
}
}
}
})
module.directive('directiveSon', function () {
return {
restrict: 'E',
scope: {},
require: '^directiveFather',
link: function(scope, element, attrs, fatherCtrl){
fatherCtrl.addCounter();
}
}
}
})
<directive father>
<directive son>
</directive son>
{{AllCounter}}
</directive father>
答案 0 :(得分:1)
如果使用隔离范围,那么directiveFather
内的元素将绑定到父范围(因此AllCounter
不会在视图中直接可用 - 尽管它将保留正确的价值)。
您可以在scope: {}
中将scope: true/false
更改为directiveFather
(请参阅demo 1)或
&#34;手动&#34;编译,链接并将HTML附加到directiveFather
元素(请参阅demo 2)
(还有Wildhoney's suggestion使用翻译和template
。)
<子>
基本上,你不需要任何一种方法来工作 - 它们只需要证明一切正常(通过在视图中显示计数器),但即使没有附加计数器,addChild()
函数按预期调用。
子>
也就是说,在修复了元素名称(<directive-father>
和<directive-son>
)之后,它按预期工作。