我对Angularjs有点新鲜。我想要的是在“ myController ”控制器中访问“ $ scope.myVar ”变量。如果您能提供解决方案,那将会很有帮助。
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>
答案 0 :(得分:13)
您只需在控制器中创建一个myVar
变量,并使用my-var
属性将其传递给指令。
在myController
中,将myVar
定义为
$scope.myVar= "Hello"
我的DOM,将其作为
传递给指令<my-directive my-var="myVar"></my-directive>
由于您使用的是双向绑定,因此控制器可以使用该指令对myVar
所做的任何更改。
您可以在watch
上加myVar
来跟踪更改。
答案 1 :(得分:10)
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
}
};
});