处理Angular中的几个页面实例+其他一些东西

时间:2017-04-03 09:57:18

标签: javascript angularjs angularjs-scope

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

我有一个工作页面,我有药片和标签(使用Bootstrap)以及侧窗格,我可以从页面类型列表中选择,并在选择时,添加了新的药片 - 标签对(页面为ng-inlcude - ed)。每个子页面类型都有自己的控制器(在每页的包裹ng-controller使用div定义)。

到目前为止这个工作正常。

现在,假设在此上下文中有三个主要(子)页面可以从侧窗格调用:人员,房屋和汽车,每个页面显示相关对象类型的列表(即人员,房屋或车)。

当查看人员列表时,用户可以点击其中一个记录,并且需要使用该人员的详细信息创建新的药片标签。

这里有两个问题:

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

  2. 由于我选择了不同的人时创建了新的标签(还没有尝试过),人员详细信息页面的每个INSTANCE都有自己的上下文,即$scope或所有实例人员详细信息页面共享相同的$scope(请注意,我使用相同的控制器打开了几次相同的子页面)?

  3. 最重要的是,我需要在其自己的上下文中处理任何子页面类型的每个实例。

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

    提前感谢。

2 个答案:

答案 0 :(得分:0)

根据我的阅读,您的业务逻辑非常先进。你可以使用裸角实现这一点,但它将是困难和凌乱的代码。我建议使用ui-router,因为

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

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

希望,它很有用

答案 1 :(得分:0)

嗯,缺少其他答案迫使我测试一下,这是我原来问题的结果/答案(如果它对其他人有用的话,张贴):

  1. 由于每个页面都有自己的控制器,因此我使用$emit方法和适当的参数在控制器之间传递信息。它非常适合我,

  2. 页面的每个实例(例如,当同时查看两个人的个人资料时)都有自己的数据上下文(即$scope),因此页面之间不存在串扰。