私はAngularjsに少し慣れていません。私が欲しいのは、「$ Controller.myVar 'myController'コントローラー内の変数にアクセスすることです。あなたが解決策を提供できるならそれは大きな助けになるでしょう。
angular.module('myDirective', [])
.controller('myController', ['$scope', function ($scope) {
}])
.directive('myDirective', function () {
return {
scope: {
myVar: '='
},
controller: function ($scope) {
$scope.myVar = 'xyz';
alert($scope.myVar);
}
};
});
<html lang="en-US">
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script type="text/javascript" src="newjavascript.js"></script>
<body ng-app="myDirective">
<div ng-controller="myController">
<my-directive></my-directive>>
</div>
</body>
</html>
コントローラーでmyVar
変数を作成し、my-var
属性を使用してディレクティブに渡すだけです。
myController
で、myVar
を次のように定義します
$scope.myVar= "Hello"
私はあなたのDOM、それをディレクティブに次のように渡します
<my-directive my-var="myVar"></my-directive>
双方向バインディングを使用しているため、ディレクティブによってmyVar
に加えられた変更はコントローラーで使用できます。
watch
にmyVar
を置くと、変更を追跡できます。
angular.module('myDirective', [])
.controller('myController', ['$scope', function ($scope) {
$scope.show = function() {
alert($scope.myVar);
};
}])
.directive('myDirective', function () {
return {
scope: {
myVar: '='
},
controller: function ($scope) {
$scope.myVar = 'xyz';
alert($scope.myVar);
$scope.$parent.myVar = $scope.myVar; // here you can access the controller scope by using $parent
}
};
});