处理 Angular 中页面的多个实例 + 一些其他内容

问题描述 投票:0回答:2

我正在使用 AngularJS 构建一个新应用程序,下文是对其的简化描述。

有一个页面,其中有药丸和选项卡(使用 Bootstrap)以及侧窗格,我可以从页面类型列表中进行选择,选择后,会添加一个新的药丸选项卡对(页面是

ng-include
-ed)。每个子页面类型都有自己的控制器(在每个页面的包装
ng-controller
处使用
div
定义)。

到目前为止一切正常。

现在,假设在这种情况下,可以从侧窗格调用三个主(子)页面:人员、房屋和汽车,每个页面都显示相关对象类型的列表(即人员、房屋或汽车) .

例如,在查看人员列表时,用户可以单击其中一条记录,并且需要使用该人员的详细信息创建一个新的药丸选项卡。

我有两个问题:

  1. 如何将所选人员的唯一ID传递到人员详细信息页面?

  2. 由于当我选择不同的人时会创建新选项卡(尚未尝试此操作),人员详细信息页面的每个实例是否都有自己的上下文,即

    $scope
    ,或者人员详细信息页面的所有实例共享相同
    $scope
    (请注意,我使用相同的控制器多次打开相同的子页面)?

底线是我需要在自己的上下文中处理任何子页面类型的每个实例。

这是 AngularJS 的工作方式还是我需要实现一些特殊的技巧?

javascript angularjs angularjs-scope
2个回答
0
投票

从我读到的内容来看,你的业务逻辑相当先进。您可以使用裸角来实现此目的,但这将是困难且混乱的代码。我建议使用 ui-router 因为

  • 您的业务逻辑需要嵌套状态(药丸和选项卡)
  • 您将生成整洁且易于维护的代码
  • 这是根据最佳实践
  • 您将能够单独处理每个页面

至于你的问题,请参考docs,它们会比我的更有用

希望有用


0
投票

好吧,缺乏其他答案迫使我进行测试,这是我原来问题的结果/答案(发布以防对其他人有用):

  1. 由于每个页面都有自己的控制器,因此我使用

    $emit
    方法和适当的参数在控制器之间传递信息。它非常适合我,

  2. 页面的每个实例(例如,当同时查看两个人的个人资料时)都有自己的数据上下文(即

    $scope
    ),因此页面之间不存在串扰。

© www.soinside.com 2019 - 2024. All rights reserved.