我编写了一个提供选项卡功能的指令,我使用最新版本的AngularJS(v1)。
在我的指令中,我有一个将api公开给子指令的控制器,该范围在所有指令中都是隔离的:
父指令
scope: {},
controller: function($scope) {
$scope.values = [];
this.addValue = function(value) {
$scope.values.push(value);
}
}
链接函数的子指令
scope: {},
transclude: true,
template: '<div ng-transclude></div>',
replace: true,
link: function(scope, element, attr, parentCtrl)
{
parentCtrl.addValues('test')
}
在child指令中,我有一个带有自己控制器的自定义html:
TestCtrl
function TestCtrl($scope){
var vm = this;
... other logic
}
实施
<parent>
<child>
<div ng-controller="TestCtrl as t">
<button ng-click="addValues('new_test')"></button>
</div>
</child>
</parent>
我需要调用“addValues”方法(在指令控制器内)点击我的按钮。
如何组织代码来实现这一点?