2017-02-14 159 views
1

如何将指令的值传递给控制器​​或将指令中的变量传递给控制器​​。谢谢。将指令中的变量传递给控制器​​

这是我的代码。它具有$下的变量观察功能

.directive("groupId", function() { 
    return { 
    replace: true, 
    link: function(scope, element, attrs) { 
     attrs.$observe('groupId', function(value) { 
     myVal = value; 
     }); 
    } 
    }; 
}) 
+2

需要将范围定义添加到指令 –

回答

1

<!DOCTYPE html> 
 
<html ng-app="plunker"> 
 

 
<head> 
 
    <script data-require="[email protected]" src="https://code.angularjs.org/1.4.12/angular.js" data-semver="1.4.9"></script> 
 
</head> 
 

 
<body ng-controller="MainCtrl"> 
 
    <table> 
 
    <!--* groupIdValue value is passing from controller to directive 
 
    * and my-val is returned back from directive to controller 
 
    * that value is available to controller from ControllerVar variable *--> 
 
    <tr group-id="{{groupIdValue}}" my-val="ControllerVar"></tr> 
 
    </table> 
 
    controller variable: {{ControllerVar}} 
 
</body> 
 
<script> 
 
    var app = angular.module('plunker', []); 
 

 
    app.controller('MainCtrl', function($scope) { 
 
    $scope.groupIdValue = '123345'; 
 
    }).directive("groupId", function() { 
 
    return { 
 
     replace: true, 
 
     restrict: 'A', 
 
     scope: { 
 
     myVal: "=myVal" 
 
     }, 
 
     link: function(scope, element, attrs) { 
 
     attrs.$observe('groupId', function(value) { 
 
      scope.myVal = value; 
 
     }); 
 
     } 
 
    }; 
 
    }) 
 
</script> 
 

 
</html>

在这里,您可以使用ControllerVar在控制器$scope.ControllerVar

+0

的声明谢谢。我如何将scope.myVal值传递给控制器​​,我将如何调用它? –

+0

变化'<组ID我-VAL = “ControllerVar”>''到'

和使用'限制:'A'' – nivas

+0

使用'$ scope.ControllerVar'内部控制器,它将具有范围的'相同的值。 myVal'内部指令。 –

相关问题