TL; DR:我应该如何为嵌套视图提供值?
为了简洁起见,我将大大简化应用程序,以便专注于解决问题。我有两个主要观点,称为客户和退款。每个主视图都有一个名为Notes的共享嵌套视图。 Notes视图使用customerId加载并显示相对于客户的注释。 Customer视图的路由有customerId,但Refunds没有。查看“退款”视图时,默认情况下会隐藏“备注”部分。一旦用户选择列表中的一个退款,我希望Notes视图为所选客户加载注释。由于Notes控制器正在使用$stateParams.customerId
,因此在“退款”视图上加载时它将为空。退款控制器知道选择了哪个customerId,但我需要一些方法来告诉嵌套的Notes视图加载哪个customerId。
到目前为止,我已经提出了一些选择,但我不确定我是否喜欢它们中的任何一种,但是现在它们都是。
$provide
提供一个被注入NotesController的customerId。不喜欢这样,因为它很俗气,需要我在CustomerController上做同样的事情。警告:我正在使用ControllerAs语法,因此范围不会相互继承。这可以防止我在主作用域上设置customerId并在嵌套作用域中引用它。
答案 0 :(得分:0)
在您的父作用域中,将customerId
存储在当前作用域($scope.customerId = $stateParams.customerId
)中,并在子作用域上,通过$scope.$parent.customerId