Angular.js控制器命名方法

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

我正在使用以下方案在Angular v1.x中开发应用程序。

  1. 用户(卖方)可以向买方提供物品
  2. 用户(买方)可以接受或拒绝该要约

当用户点击添加商品(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”来处理两种情况的逻辑。但是对于每种情况,必须使用不同的api调用REST服务来获取初始视图变量。例如:

  • 当买家想看到收到的所有优惠时,
  • 当在第一个场景中用户正在提出报价时,不需要当前报价

我没有看到在同一个控制器中隔离逻辑并根据我的情况进行调用的方法。

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

看起来好像我的控制器是他们自己的行动现在让我怀疑我的方法。我应该以不同的方式接近这个吗?

angularjs controller modal-dialog
2个回答
1
投票

根据你的描述

  1. 对于买家来说,我们需要获得一些大量的数据,因为我们正在获取买家已经拥有的所有优惠。
  2. 对于卖家,我们不会进行任何API调用(可能我们可以进行API调用,我们可以显示卖家所做的所有优惠,或类似的东西)

现在,如果我们看一下SOLID的单一责任原则,我们应该制作两个独立的控制器,因为除了向用户(买家/卖家)询问他们的选择之外还有更多的事情要做,即我们也展示他们的所有优惠有。如果我们计划在UI上显示之前操作数据,它还有助于我们将来扩展我们各自的代码。

所以,拥有更好的html文件名就像offerConfirmation.html一样明智。因为,我们也在展示优惠。目前你使用过yesno.html

对于Controller名称,我认为我们可以使用类似的东西:

  1. BuyerConfimationController
  2. SellerConfirmationController

我之所以选择这个名字是因为像offersAddControlleroffersDecideController这样的名字对于一些新的开发者来说并不是自我解释,除非他知道卖家可以add和买家将decide。 (虽然听起来很明显)。

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


1
投票

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

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