繁体   English   中英

AngularJS在控制器中处理数据的多个部分

[英]AngularJS Processing multiple parts of data in a controller

我正在构建一个基本上可以在您选择期权时计算价格的应用程序。 因此,基本上,这是一个带有选择选项的表格,当您向下浏览表格时,该应用程序将更精细地处理价格并更改其他表格字段的选项。

目前,我已经构建了一个API,在此处理过程中,该应用将需要多次运行API。 最终将有7-12个表单字段构成定价选项。 在绘制控制器时,我想知道什么是使我的处理井井有条的最佳方法。 如果我使用PHP之类的语言来执行此操作,则每个表单元素在每次更改表单时都会有不同的功能。

在Angular中,每个视图只有一个控制器,我很好奇专业人士将如何组织它。

在非特定语言结构中,我在想类似...

  1. 选择一个有5个选项,用户选择一个。
  2. 使用第一步中的数据,进行计算,点击API并获得选择编号2的新选项。用户选择选项,然后过程再次发生。

因此,如果我的控制员说...

.controller("formController", function($scope){
        //Function for when select one changes, listen for form change ng-change
        function item1Change(){
           //hit api with item1 value, get options for item2 and and load them into item2
        }
        function item2Change(){
           //hit api with item2 value, get options for item3 and and load them into item3
        }
    })

对我来说,这似乎很脏,因为我需要定义一些东西,它似乎不是模块化的或分段的,我只是觉得有一个更好的选择。 如果你们有更好的主意,请告诉我,谢谢!

对于视图可用的控制器数量没有限制。 我要遵循的一个一般的最佳实践*是,为每个$scope初始化一个控制器,我觉得需要比其父范围或该范围内指令的行为定义更为谨慎地处理。

我会用:

  • 一个formCtrl
  • priceCtrl
  • 用于计算总数的自定义指令
  • 一种将行为与表单控制器配对的选择行为的指令策略(一个或多个指令)
  • 一种根据需要向控制器和指令提供选项配置,依赖项等的服务(这是一种将数据与控制器分离并封装数据处理/处理的好方法。这也使您可以提供如果需要,将相同的数据保存到不同的表单视图

您可以认为您的指令和指令策略与使用装饰器模式的方式相似。 通过用特定指令修饰表单输入,它可以__

*(这是我自己的最佳做法,我不能说这是Angular团队或社区普遍认可的内容)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM