2015-07-27 3 views
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 

ответ

1

Попробуйте как этот

{{$parent.test}} 
+0

O kay great! Однако я действительно хотел вызвать функцию на 'ng-submit' из этой дочерней директивы для функции внутри этого родительского контроллера. '$ parent.test' выводится просто отлично, но если я вызову' updateProfile', он не будет запущен. См. Выше – Growler

+0

вы можете предоставить plunkr для этого? –

+0

Аник, нашел мою проблему. Я обволакивал свою директивную форму в бутстрап-аккордеоне. Этот аккордеон фиксирует объем внутри него, то есть мне нужно сделать $ parent. $ Parent.ctrlFunction() для доступа к функции внутри контроллера. – Growler

Смежные вопросы