【发布时间】:2017-02-15 19:37:41
【问题描述】:
如何访问子控制器模板中的父范围变量?
我有子控制器(时间选择器)并想通过父控制器更改子控制器下的按钮文本。如何使用父控制器修改子模板的值?
Plunker 代码:@987654321@enter code here
【问题讨论】:
标签: angularjs bootstrap-datetimepicker
如何访问子控制器模板中的父范围变量?
我有子控制器(时间选择器)并想通过父控制器更改子控制器下的按钮文本。如何使用父控制器修改子模板的值?
Plunker 代码:@987654321@enter code here
【问题讨论】:
标签: angularjs bootstrap-datetimepicker
子视图可以自动访问 $scope 属性。像往常一样访问它们。
修改父属性稍微“困难”一些。我建议使用 setter 来修改父级的属性。如果您像往常一样修改它(通过简单地分配一个值),它将使用新值创建一个本地范围的副本,而不是修改父级上的现有值。
在您的父控制器上执行以下操作:
$scope.myValue = "foo";
$scope.changeMyValue = function (value) {
$scope.myValue = value;
}
然后从您的子控制器调用changeMyValue 方法。
如果你想修改子属性,我会建议事件。
在您的父控制器中执行此操作以触发事件:
$scope.$broadcast('myEventName', myValue);
您可以通过这种方式在子控制器上接收事件:
$scope.$on('myEventName', (event, value) => handleEvent(value));
【讨论】: