我正在使用 AngularJS 构建一个新应用程序,下文是对其的简化描述。
有一个页面,其中有药丸和选项卡(使用 Bootstrap)以及侧窗格,我可以从页面类型列表中进行选择,选择后,会添加一个新的药丸选项卡对(页面是
ng-include
-ed)。每个子页面类型都有自己的控制器(在每个页面的包装 ng-controller
处使用 div
定义)。
到目前为止一切正常。
现在,假设在这种情况下,可以从侧窗格调用三个主(子)页面:人员、房屋和汽车,每个页面都显示相关对象类型的列表(即人员、房屋或汽车) .
例如,在查看人员列表时,用户可以单击其中一条记录,并且需要使用该人员的详细信息创建一个新的药丸选项卡。
我有两个问题:
如何将所选人员的唯一ID传递到人员详细信息页面?
由于当我选择不同的人时会创建新选项卡(尚未尝试此操作),人员详细信息页面的每个实例是否都有自己的上下文,即
$scope
,或者人员详细信息页面的所有实例共享相同 $scope
(请注意,我使用相同的控制器多次打开相同的子页面)?
底线是我需要在自己的上下文中处理任何子页面类型的每个实例。
这是 AngularJS 的工作方式还是我需要实现一些特殊的技巧?
好吧,缺乏其他答案迫使我进行测试,这是我原来问题的结果/答案(发布以防对其他人有用):
由于每个页面都有自己的控制器,因此我使用
$emit
方法和适当的参数在控制器之间传递信息。它非常适合我,页面的每个实例(例如,当同时查看两个人的个人资料时)都有自己的数据上下文(即
$scope
),因此页面之间不存在串扰。