我有两个控制器,一个封装在另一个中。现在,我知道子范围从父范围继承属性,但是有没有办法更新父范围变量?到目前为止,我还没有遇到任何明显的解决方案。
在我的情况下,我在表单中有一个日历控制器。我想从父范围(即表单)更新开始日期和结束日期,以便表单在提交时具有开始日期和结束日期。
您需要在父作用域中使用一个对象(不是原始对象),然后就可以直接从子作用域中更新它
上级:
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/