我正在使用以下方案在Angular v1.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”来处理两种情况的逻辑。但是对于每种情况,必须使用不同的api调用REST服务来获取初始视图变量。例如:
我没有看到在同一个控制器中隔离逻辑并根据我的情况进行调用的方法。
那么我应该使用两个控制器,如果是这样,那么什么是合适的命名约定?我想有“offersAddController”和“offersDecideController”。但我不确定这是否正确,因为“添加”和“决定”是动作,并且在我的控制器中有一个动作名称感觉不对。
看起来好像我的控制器是他们自己的行动现在让我怀疑我的方法。我应该以不同的方式接近这个吗?
根据你的描述
现在,如果我们看一下SOLID的单一责任原则,我们应该制作两个独立的控制器,因为除了向用户(买家/卖家)询问他们的选择之外还有更多的事情要做,即我们也展示他们的所有优惠有。如果我们计划在UI上显示之前操作数据,它还有助于我们将来扩展我们各自的代码。
所以,拥有更好的
html
文件名就像offerConfirmation.html
一样明智。因为,我们也在展示优惠。目前你使用过yesno.html
。
对于Controller名称,我认为我们可以使用类似的东西:
BuyerConfimationController
SellerConfirmationController
我之所以选择这个名字是因为像offersAddController
和offersDecideController
这样的名字对于一些新的开发者来说并不是自我解释,除非他知道卖家可以add
和买家将decide
。 (虽然听起来很明显)。
我知道为用户(卖家/买家)知道add
和decide
可能听起来很明显,但很有可能将来角色变得更复杂(或者如果我们处理一些特殊的域相关用户,我们需要了解用户在触摸代码之前的角色)。保持控制器名称尽可能明确将有助于任何新开发人员直接跳转到特定控制器并进行必要的更改。
根据控制器的命名约定,如果您选择一个字面描述控制器功能的名称会更好。我建议您选择控制器名称为[action] [Type] [Controller]。在这种情况下,AddOffersController和DecideOffersController将是一个合适的名称。