我想了解如何將服務帶入控制器中,當該服務在父控制器和子控制器中使用時父母和孩子的HTML。我應該把服務到父,然後讓該服務的副本從範圍在孩子這樣的:當一個服務注入父控制器時,我應該也注入到孩子或只是繼承服務
class AppController {
static $inject = [
'$scope',
'configService'
]
constructor(
public $scope: IAppControllerScope,
public config: IConfigService
) {
$scope.app = this;
$scope.config = config;
}
// this.config is used here
}
class AdminHomeController {
public app: AppController;
public config: ConfigService;
static $inject = [
'$scope'
];
constructor(
private $scope: IAdminHomeControllerScope
) {
this.app = $scope.app;
this.config = $scope.config;
$scope.home = this;
}
// this.config is used here
}
或者我應該把服務爲雙方父母和孩子的控制器是這樣的:
class AppController {
static $inject = [
'$scope',
'configService'
]
constructor(
public $scope: IAppControllerScope,
public config: IConfigService
) {
$scope.app = this;
$scope.config = config;
}
// this.config is used here
}
class AdminHomeController {
public app: AppController;
static $inject = [
'$scope',
'configService'
];
constructor(
public $scope: IAdminHomeControllerScope,
public config: IConfigService
) {
this.app = $scope.app;
$scope.home = this;
}
// this.config is used here
}
我將不勝感激任何意見和建議,哪些是最好的方式來做到這一點,如果有差異。還有一個問題。我的構造函數的參數應該被聲明爲私有還是公共?
它不會在打字稿中壞掉。 – basarat
什麼不?我發佈的代碼或從應用程序控制器中刪除的服務? – PaReeOhNos
如果更新基礎範圍以刪除服務,其餘控制器將無法編譯。所以用法參數在這裏是無效的。 – basarat