访问控制器内的 AngularJs 指令变量 [英] Access AngularJs directive variable inside controller

查看:28
本文介绍了访问控制器内的 AngularJs 指令变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对 Angularjs 有点陌生.我想要的是访问myController"控制器内的$scope.myVar"变量.如果您能提供解决方案,那将是非常有帮助的.

angular.module('myDirective', []).controller('myController', ['$scope', function ($scope) {}]).directive('myDirective', function () {返回 {范围: {我的变量:'='},控制器:函数($scope){$scope.myVar = 'xyz';警报($scope.myVar);}};});

<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"><我的指令></我的指令>>

</html>

解决方案

您只需在控制器中创建一个 myVar 变量并使用 my-var 将其传递给指令属性.

在您的 myController 中,将 myVar 定义为

$scope.myVar="你好"

我是你的DOM,将它传递给指令

由于您使用的是双向绑定,因此指令对 myVar 所做的任何更改都可以在您的控制器中使用.

您可以在 myVar 上放置一个 watch 以跟踪更改.

I'm little bit new to Angularjs. What I want is access "$scope.myVar" variable inside 'myController' controller. It would be great help if you can provide a solution.

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> 

解决方案

You just create a myVar variable in your controller and pass it to the directive using my-var attribute.

In your myController, Define myVar as

$scope.myVar= "Hello"

I your DOM, pass it to the directive as

<my-directive my-var="myVar"></my-directive>

Since you are using two way binding, any changes made to myVar by the directive are available in your controller.

You can put a watch on myVar to track the changes.

这篇关于访问控制器内的 AngularJs 指令变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆