Jestem świadomy, jak mogę uzyskać kontroler nadrzędny directive
w funkcji link
dyrektywy dotyczącej dziecka.
Jednak wolałbym nie używać funkcji link
(i $scope
razem) i mieć cały mój kod pod funkcją controller
dyrektywy.Angular - uzyskaj kontrolkę dyrektywy nadrzędnej w kontrolerze podrzędnej (nie funkcji łącza)
angular.directive('parent', function(){
return {
templateUrl: '/parent.html',
scope: true,
bindToController: true,
controllerAs: 'parentCtrl',
controller: function(){
this.coolFunction = function(){
console.log('cool');
}
}
}
});
angular.directive('child', function(){
return {
templateUrl: '/child.html',
require: '^parent',
scope: true,
bindToController: true,
controllerAs: 'childCtrl',
controller: function() {
// I want to run coolFunction here.
// How do I do it?
}
}
});
Każda pomoc jest doceniana!
U chcą uniknąć za pomocą linku? Czemu? –
Chciałbym napisać kod w sposób przyjazny dla Angular2. – Dmitry
@Dmitry Trzymanie się kontrolerów i jqlite (jak poprawnie sugeruje odpowiedź) spowoduje, że twój kod będzie wrogi do Angular 2 (co jest przeciwieństwem przyjaznego). – estus