2016-12-06 64 views
0

如何通過'範圍'參數指令之外? 我需要一些其他組件中使用它..我怎樣才能通過'範圍'參數指令

我的代碼:

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

    } 

TNX!

+0

指令自動繼承父'$ scope'。 – Nirus

+0

使用'$ scope。$ parent'來訪問父範圍 – azad

回答

1

你可以通過一個控制器來做到這一點。由於AngularJS以雙向數據綁定原理工作,因此您分配的這些變量將從您引用的位置開始更新,您也可以將它們與其他指令一起使用。例如,我假設你用你的指令,如下所示:

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

,可以有以下的myCtrl controllor相應的變量:

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

在正常情況下,你可以綁定其他指令的屬性,這些價值和他們將以雙向更新。例如,如果您使用以下指令,則應該使用相同的值更新這兩個指令。

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

謝謝! 現在我需要將它們傳遞給上面的組件。 有可能嗎? –

+0

上面是什麼組件?如果您可以舉例說明上述代碼,我希望能提供幫助。 –

+0

我有2個組件,「tabsContainer」和「importTab」。如您所解釋的,我可以將外部指令「importPackage」的參數傳遞給「importTab」組件。 現在我需要將它們傳遞給「tabsContainer」(通常該應用程序的樹看起來像這樣:「tabsContainer」組件調用使用「importPackage」指令的「importTab」組件)。 –