2016-12-06 61 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”组件)。 –