我的AngularJS应用程序中有两个控制器。在我的第一个控制器中,我有一个输入/下拉字段,我希望在每个ng-Change的第二个嵌套控制器中使用该值。例如,
我的代码(HTML)::
<body ng-app="myApp" ng-controller="DropdownCtrl">
<input type="text" class="form-control" ng-model="dt" ng-change="changeDate(dt)" />
<span class="input-group-btn">
<button type="button" class="btn btn-default" ng-click="open($event)">
<i class="glyphicon glyphicon-calendar"></i>
</button>
</span>
<div class="row" ng-controller="MainCtrl">
<!-- other code -->
</div>
</body>
现在我想做什么,当ng-Change发生时,我想在 MainCtrl
中使用changeDate(dt)函数的值答案 0 :(得分:1)
为了使父控制器与子控制器通信,父控制器应使用$scope.$broadcast('changedValue', dt);
这将向所有儿童控制器广播dt的新值。然后,childController应该使用以下代码监听更改:
$scope.$on('parent-message', function (event, dt) {
//you can now use dt in the child controller to do whatever it is you wanted
});
使用routeProviders和ng-view
时,这一点特别好这是一个很棒的tutorial,可以很好地解释这一点: