1
Я хочу получить доступ к функции в контроллере из hgml, содержащего ng, который содержит директиву с html-шаблоном.Доступ к родительскому контроллеру из ng-включенного HTML
Значение, учитывая шаблон HTML родитель с контроллером:
<div ng-controller="profileCtrl">
<div ng-include src="profileContent"></div>
</div>
profileCtrl:
$scope.profileContent = '/html/views/myview.html';
$scope.test = 'This should show';
myview.html:
<my-directive></my-directive>
Myd директиве:
angular
.module('myModule')
.directive('myDirective', [function() {
return {
restrict: 'E',
templateUrl: '/html/directives/myDirectiveTemplate.html',
...
myDirectiveTemplate.html:
{{test}} //should output "This should show"
Как я могу получить доступ к $ scope.test от ребенка myDirective?
myDirectiveTemplate.html:
<form ng-submit="$parent.updateProfile()">
profileCtrl:
$scope.updateProfile = function() {
console.log('updating profile'); //not called
O kay great! Однако я действительно хотел вызвать функцию на 'ng-submit' из этой дочерней директивы для функции внутри этого родительского контроллера. '$ parent.test' выводится просто отлично, но если я вызову' updateProfile', он не будет запущен. См. Выше – Growler
вы можете предоставить plunkr для этого? –
Аник, нашел мою проблему. Я обволакивал свою директивную форму в бутстрап-аккордеоне. Этот аккордеон фиксирует объем внутри него, то есть мне нужно сделать $ parent. $ Parent.ctrlFunction() для доступа к функции внутри контроллера. – Growler