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