父指令中child指令变量的访问值

时间:2018-06-18 16:34:39

标签: angularjs angularjs-directive angularjs-components isolate-scope

如何在父指令中访问child指令的变量? 我有一个父指令,如:

<parent-directive>
  <child-directive></child-directive>
</parent-directive>

子指令包含一个对象&#34; states.visible&#34; 我想在父指令中访问它。

1 个答案:

答案 0 :(得分:0)

我认为AngularJs这样做的方法是通过在child子指令中实现输出来实现的。每次&#34;陈述&#34;对象更改子调用输出函数,父对象可以随意执行任何操作。

AngularJS v1.5 +方法:

<强> HTML

<parent-directive>
  <child-directive on-state-change="$ctrl.stateChange($stateChangeObj)"></child-directive>
</parent-directive>

儿童控制器

    $scope.$watch('$ctrl.state', function(n, old){
        ctrl.onStateChange({$stateChangeObj: n});
    })

家长控制器

ctrl.stateChange = function(state){
    // do something
}

https://docs.angularjs.org/guide/component#component-based-application-architecture

  

注意:AngularJS v1.5中引入了基于组件的体系结构。

在AngularJS v1.5方法之前:

这在技术上应该与双向绑定功能相同。除了html看起来像这样

on-state-change="$ctrl.stateChange"

而不是

on-state-change="$ctrl.stateChange($stateChangeObj)"

。那么在孩子身上就是

ctrl.onStateChange(n);

而不是

 ctrl.onStateChange({stateChangeObj: n});