在父指令中访问子指令变量的值
Access value of a variable of child directive in parent directive
如何在父指令中访问子指令的变量?
我有一个父指令,如:
<parent-directive>
<child-directive></child-directive>
</parent-directive>
子指令包含一个对象"states.visible"
我想在父指令中访问它。
我认为 AngularJs 方法可以通过在 child 指令中实现输出来完成。每次 "states" object 改变时 child 调用输出函数并且 parent 可以用它做任何它想做的事情。
AngularJS v1.5+ 方法:
HTML
<parent-directive>
<child-directive on-state-change="$ctrl.stateChange($stateChangeObj)"></child-directive>
</parent-directive>
Child 控制器
$scope.$watch('$ctrl.state', function(n, old){
ctrl.onStateChange({$stateChangeObj: n});
})
Parent 控制器
ctrl.stateChange = function(state){
// do something
}
https://docs.angularjs.org/guide/component#component-based-application-architecture
Note: Component based architecture was introduced in AngularJS v1.5.
AngularJS v1.5 方法之前:
这在技术上应该与双向绑定函数相同。除了 html 看起来像这样
on-state-change="$ctrl.stateChange"
而不是
on-state-change="$ctrl.stateChange($stateChangeObj)"
。然后在 child 中它将是
ctrl.onStateChange(n);
而不是
ctrl.onStateChange({stateChangeObj: n});
如何在父指令中访问子指令的变量? 我有一个父指令,如:
<parent-directive>
<child-directive></child-directive>
</parent-directive>
子指令包含一个对象"states.visible" 我想在父指令中访问它。
我认为 AngularJs 方法可以通过在 child 指令中实现输出来完成。每次 "states" object 改变时 child 调用输出函数并且 parent 可以用它做任何它想做的事情。
AngularJS v1.5+ 方法:
HTML
<parent-directive>
<child-directive on-state-change="$ctrl.stateChange($stateChangeObj)"></child-directive>
</parent-directive>
Child 控制器
$scope.$watch('$ctrl.state', function(n, old){
ctrl.onStateChange({$stateChangeObj: n});
})
Parent 控制器
ctrl.stateChange = function(state){
// do something
}
https://docs.angularjs.org/guide/component#component-based-application-architecture
Note: Component based architecture was introduced in AngularJS v1.5.
AngularJS v1.5 方法之前:
这在技术上应该与双向绑定函数相同。除了 html 看起来像这样
on-state-change="$ctrl.stateChange"
而不是
on-state-change="$ctrl.stateChange($stateChangeObj)"
。然后在 child 中它将是
ctrl.onStateChange(n);
而不是
ctrl.onStateChange({stateChangeObj: n});