【问题标题】:Access parent scope variable in child controller template - Angular访问子控制器模板中的父范围变量 - Angular
【发布时间】:2017-02-15 19:37:41
【问题描述】:

如何访问子控制器模板中的父范围变量?

我有子控制器(时间选择器)并想通过父控制器更改子控制器下的按钮文本。如何使用父控制器修改子模板的值?

Plunker 代码:@987654321@enter code here

【问题讨论】:

    标签: angularjs bootstrap-datetimepicker


    【解决方案1】:

    子视图可以自动访问 $scope 属性。像往常一样访问它们。

    修改父属性稍微“困难”一些。我建议使用 setter 来修改父级的属性。如果您像往常一样修改它(通过简单地分配一个值),它将使用新值创建一个本地范围的副本,而不是修改父级上的现有值。

    在您的父控制器上执行以下操作:

    $scope.myValue = "foo";
    $scope.changeMyValue = function (value) {
        $scope.myValue = value;
    }
    

    然后从您的子控制器调用changeMyValue 方法。

    如果你想修改子属性,我会建议事件。

    在您的父控制器中执行此操作以触发事件:

    $scope.$broadcast('myEventName', myValue);
    

    您可以通过这种方式在子控制器上接收事件:

    $scope.$on('myEventName', (event, value) => handleEvent(value));
    

    【讨论】:

      猜你喜欢
      • 2011-07-29
      • 2014-04-21
      • 1970-01-01
      • 2014-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 2015-12-24
      相关资源
      最近更新 更多