我想在不使用$ 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>