0

Я хочу получить доступ к области контроллера без использования $ parent. Из все, что я читал, я думал, что я мог бы просто передать его в точечном объеме следующим образом:Доступ к области контроллера с дочерней директивой в угловом

<body ng-app="app" ng-controller="myController"> 
    <h1> 
     {{message}} 
    </h1> 
    <mydir></mydir> 

angular.module('app', []) 

.controller('myController', function($scope){ 
    $scope.message = "Hello World"; 
}) 

.directive('mydir', function(){ 
    return { 
    restrict: "E", 
    scope: { 
     message: "=", 
    }, 
    controller: function($scope){ 
     $scope.goodbye = function(){ 
     $scope.message = "Goodbye World"; 
     } 
    }, 
    template: "<button ng-click='goodbye()'>Say Goodbye</button>" 
    } 
}) 

Однако, я не могу получить директиву, чтобы обновить message свойство прицела. Plnkr link.

+0

Контроллеры имеют специфическое поведение для страницы/частично и директивы являются универсальными, так что должны быть допускающие повторное использование. Директива не может зависеть от объема контроллера. Вы должны пройти как параметр, как предлагает Панкадж Паркар. –

ответ

4

Поскольку выделенное значение области может передаваться с использованием attribute, тогда вам нужно указать атрибут message на элемент директивы, который будет иметь имя переменной области.

<mydir message="message"></mydir> 

Demo Plunker

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