簡體   English   中英

在angular js控制器或服務中添加更多依賴項是否有任何危害

[英]Is there any harm in adding more dependencies in angular js controller or service

假設這是我的角度控制器

app.controller("MyCtrl", function($scope, $modal, $state,) {
});

我正在考慮讓一個全局變量保存最常用的依賴項,例如

var all = ['$scope', '$modal', '$state']

然后在需要的所有地方使用all其他依賴項

是否存在將所有依賴項無處不在的任何性能問題

不得不注入更多的代碼會降低性能,但不會造成重大影響。 我不建議像這樣全局定義依賴項,因為依賴項應該非常明顯。 您應該確切知道您對它們的操作,而不必打開另一個文件並檢查。

如果您需要在任何地方重用一組依賴項,則表明該代碼可能存在問題。 代碼庫的不同區域都如何與同一個東西對話? 這表明關注點重復。 我不會將這種主張擴展為只需要一直注入$ scope或$ http。

簡而言之,我認為管理這樣的依賴關系不是一個好主意。

雖然我對Angular內部沒有很深的了解,也沒有真正去衡量您所要求的性能,但是我會冒昧地將我的猜測作為.... 您不會在這里看到性能影響。 唯一的影響將在於控制器實例化,每個實例僅發生一次。 即便如此,我們仍在談論新對象的更新……性能影響應該可以忽略不計,而我不必擔心。

您不能使用在另一個控制器或服務中定義的變量進行注入。 您可以做的一件事是創建一個工廠,並將您的依賴項放在$ rootScope中。

app.factory('root',function($rootScope, $modal, $state){
$rootScope.modal = $modal;
$rootScope.state = $state;
});

您只需將$ rootScope放入所有控制器中,就可以訪問所需的任何內容。 您只需要在主控制器中注入“ root”(如果有的話)。 需要這種快捷方式似乎是可疑的體系結構,但這就是我要做的。 真的沒有什么好表現的-非基本體是引用類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM