Angularjs Angular.js控制器命名方法

Angularjs Angular.js控制器命名方法,angularjs,controller,modal-dialog,Angularjs,Controller,Modal Dialog,我正在AngularV1.x中开发一个应用程序,具有以下场景 用户(卖方)可以向买方提供商品 用户(买方)可以接受或拒绝报价 当用户点击添加优惠(1)或(2)决定优惠时,我使用的是注入应用程序的模式服务。例如: app.controller('SampleController', ["$scope", "ModalService", function($scope, ModalService) { $scope.showAModal = function() { // Just

我正在AngularV1.x中开发一个应用程序,具有以下场景

  • 用户(卖方)可以向买方提供商品
  • 用户(买方)可以接受或拒绝报价
  • 当用户点击添加优惠(1)或(2)决定优惠时,我使用的是注入应用程序的模式服务。例如:

    app.controller('SampleController', ["$scope", "ModalService", function($scope, ModalService) {
    
      $scope.showAModal = function() {
    
        // Just provide a template url, a controller and call 'showModal'.
        ModalService.showModal({
          templateUrl: "yesno/yesno.html",
          controller: "YesNoController"
        }).then(function(modal) {
          modal.element.modal();
          modal.close.then(function(result) {
            $scope.message = result ? "You said Yes" : "You said No";
          });
        });
    
      };
    
    }]);
    
    对于每个模式,我可以设置使用的控制器。我最初的想法是两个情态动词都使用一个“offersController”,它将处理两种情况下的逻辑。但对于每种情况,必须对REST服务进行不同的api调用以获取初始视图变量。例如:

    • 当买家希望看到收到的所有报价时,会拨打电话
    • 在第一个场景中,当用户提供报价时,不需要当前报价
    我看不到在同一个控制器中隔离逻辑并根据我的情况进行调用的方法

    那么我应该使用两个控制器吗?如果是的话,什么是合适的命名约定?我认为应该有“offersAddController”和“offersdecisoncontroller”。但我不确定这是否正确,因为“添加”和“决定”都是动作,在我的控制器中使用动作名称感觉不正确


    似乎我的控制者就是他们自己的行为,这让我怀疑我的方法。我应该以不同的方式来处理这个问题吗?

    根据控制器的命名约定,如果您选择一个能从字面上描述控制器功能的名称会更好。 我建议您选择控制器名称为[action][Type][controller]。 在这种情况下,AddOffersController和DecideOffersController将是一个合适的名称。

    根据您的描述

  • 对于买家来说,我们需要获取大量数据,因为我们正在获取买家已经拥有的所有报价
  • 对于卖方,我们没有进行任何API调用(可能是我们可以进行API调用,以便显示卖方提供的所有报价,或者类似的内容)
  • 现在,如果我们看看SOLID单一责任原则,我们应该制作两个单独的控制器,因为不仅仅是询问用户(买方/卖方)的选择,还有很多事情要做,也就是说,我们还展示了他们所有的报价。这也将有助于我们扩大各自的业务 代码,以防我们计划在显示在UI上之前操作数据

    因此,最好使用更好的
    html
    文件名,比如
    offerConfirmation.html
    。因为,我们也在展示报价。目前您使用的是
    yesno.html

    对于控制器名称,我认为我们可以使用如下内容:

  • buyerConfigmationController
  • SellerConfigurationController
  • 我之所以选择这个名字,是因为像
    offersAddController
    offersdecisecontroller
    这样的名字对于一些新开发人员来说是不言自明的,除非他知道卖家可以
    添加
    ,而买家将
    决定
    。(尽管听起来很明显)


    我知道为一个用户(卖方/买方)了解
    添加
    决定
    可能听起来很明显,但未来角色可能会变得更复杂(或者如果我们与一些特殊领域相关的用户打交道,我们需要在接触代码之前了解用户角色)。保持控制器名称尽可能明确将有助于任何新的开发人员直接跳转到特定的控制器并进行必要的更改。

    嗨,艾伦,请看我的答案,让我知道你的想法。我可能不完全正确,但我试图根据我对你问题的理解来解释。请随意对我的答案发表评论,我们可以进一步讨论并修改我的答案。因此,使用两个不同的控制器而不是一个控制器是否正确?控制器名称似乎在某种程度上描述了动作。这就是角度的工作原理。我来自PHP背景,我希望控制器只是模型控制器的控制器。这是一个没有在Angular中使用的约定吗?是的,没有这样的标准命名约定,但是作为一个好的实践,它应该解释它将控制什么动作。