私は現在、自分のカスタムディレクティブ内から2つのコントローラメソッドにアクセスする最善の方法を理解しようとしています。私の現在のコードはそうのようになります。Angular 1.xでカスタムディレクティブからコントローラメソッドにアクセスするにはどうすればよいですか?
親コンポーネントテンプレート(navMenus.html):
<menu-toggle section="navItem" ng-if="navItem.type === 'toggle'"></menu-toggle>
親コンポーネントコントローラ(navMenus.controller.js):
...
isOpen(section) {
return this.NavMenusFactory.isSectionSelected(section);
}
toggleOpen(section) {
this.NavMenusFactory.toggleSelectSection(section);
}
...
指令テンプレート(menuToggle。 HTML):
<md-button class="md-button-toggle" ng-click="vm.toggle()">
{{ section.text | translate }}
</md-button>
<ul ng-show="vm.isOpen()" class="menu-toggle-list">
<li ng-repeat="subItem in section.subItems">
{{ subItem.text | translate }}
<menu-link section="subItem"></menu-link>
</li>
</ul>
指令(menuToggle.directive.js):
...
return {
restrict: 'AE',
template,
replace: true,
scope: {
section: '=',
},
link(scope, element) {
$timeout(() => {
const $element = element;
scope.vm.toggle = function() {
console.log(scope.$parent.isOpen());
};
scope.isOpen = function() {
return $element.isOpen(scope.section);
};
scope.toggle = function() {
$element.toggleOpen(scope.section);
};
});
}
}
これらのメソッドにはどうすればアクセスできますか?
これは機能しました。ありがとう。 – Robert