我一直在寻找AngularJS中的指令继承而运气不佳。我有一个抽象指令(仅限控制器),它依赖于通常在指令范围内的某些参数。我可以很好地继承控制器,但似乎我必须在每个派生上重新声明所有抽象指令的参数,这意味着必须在每个实现中手动包含对abstract指令参数的更改。
有没有办法继承指令的控制器和范围/参数?
<小时/> 仅示例:
function Abstract($scope) {
$scope.paramAbstractNeedsButDoesntExist
// Do cool stuff
}
function Inheritor() {
return {
controller: ['$controller', function ($controller) {
$controller('Abstract', {$scope: $scope});
// Do my cool stuff
}],
...
scope: {
// Inheritor's stuff
paramInheritorNeeds: '@'
}
};
}
我已经概述了我在做什么。随意提出替代方法,但仍需要解决主要问题。
答案 0 :(得分:0)
我最终创建了一个带有返回抽象类&#39;的方法的服务。范围;然后,基类扩展该范围并添加它自己的属性/参数。我使用[$controller][1]
继承抽象类&#39;行为。为此,我从基类中删除了bindToController
和controllerAs
&#39;指令定义;这样抽象类就可以依赖于它在scope参数上的属性。