Tom Cohen
Tom Cohen

Reputation: 163

how can I pass 'scope' argument outside the directive

how can I pass 'scope' argument outside the directive? i need use it in some other component..

my code:

(function () {
angular.module('dmv.shared.components').
    directive('doImportPackage', ['Package', function (Package) {
        return {
            restrict: 'A',
            scope: {
                onStart: '<',
                onFinish: '<',
                onError: '<'},
link: function (scope, element, attributes) {

  }

tnx !!

Upvotes: 0

Views: 47

Answers (1)

Faruk Yazici
Faruk Yazici

Reputation: 2404

You can do this via a controller. Since AngularJS works in 2-way data binding principle, these variables you assigned will already be updated from where you referenced, and you can use them with other directives too. For example, I assume that you use your directive as follows:

<do-import-package 
    on-start="myCtrl.onStart" 
    on-finish="myCtrl.onFinish" 
    on-error="myCtrl.onError">
</do-import-package>

You have following corresponding variables in myCtrl controllor:

this.onStart = some value;
this.onFinish = some value;
this.onErrod = some value;

Under normal conditions, you can bind other directive's attributes to these values and they will be updated in 2-way. For example, if you use the following directive, both directives should be updated with the same values.

<other-directive 
    on-start="myCtrl.onStart" 
    on-finish="myCtrl.onFinish" 
    on-error="myCtrl.onError">
</other-directive>

Upvotes: 1

Related Questions