小编典典

在AngularJS中更新父范围变量

angularjs

我有两个控制器,一个封装在另一个中。现在,我知道子范围从父范围继承属性,但是有没有办法更新父范围变量?到目前为止,我还没有遇到任何明显的解决方案。

在我的情况下,我在表单中有一个日历控制器。我想从父范围(即表单)更新开始日期和结束日期,以便表单在提交时具有开始日期和结束日期。


阅读 215

收藏
2020-07-04

共1个答案

小编典典

您需要在父作用域中使用一个对象(不是原始对象),然后就可以直接从子作用域中更新它

上级:

app.controller('ctrlParent',function($scope){
    $scope.parentprimitive = "someprimitive";
    $scope.parentobj = {};
    $scope.parentobj.parentproperty = "someproperty";
});

ctrlChild:

app.controller('ctrlChild',function($scope){
    $scope.parentprimitive = "this will NOT modify the parent"; //new child scope variable
    $scope.parentobj.parentproperty = "this WILL modify the parent";
});

工作演示http ://jsfiddle.net/sh0ber/xxNxj/

2020-07-04