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

控制器具有特定行为的页面/部分和指令是通用的,所以它应该是允许重复使用。指令不能依赖于控制器范围。您必须按照建议Pankaj Parkar的参数传递。 –

回答

4

由于隔离的范围值可以通过使用attribute,因此您需要在指令元素上具有message属性,该元素将具有范围变量名称。

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

Demo Plunker