[英]AngularJS: directive adds object to $scope but undefined in controller
[英]Alias the AngularJS $scope object in a controller
在不了解原因的細節的情況下,我需要在控制器中為$scope
提供別名。 我希望用戶能夠注入view
並使其具有相同的效果,而不是注入和裝飾$scope
。
根據我對angular的理解, $scope
由$scopeProvider
創建,它是在angular app的配置時注冊的工廠。 我假設我需要注冊一個viewProvider
並將其設置為等於$scopeProvider
但我沒有幸運,我一直在嘗試。 有任何想法嗎?
僅供參考:我不是在尋找類似['$scope', function(view){...
,理想的解決方案適用於['view', function(view){...
視圖對象的行為與$scope
,雙向綁定等完全相同 。
如果您正在教授AngularJS
,您實際上應該避免使用$scope
並使用controller as syntax
- 請參閱John Papa撰寫的這個令人敬畏的Angular Style Guide以獲得解釋 。
那也可以解決你的問題:)
沒有$scopeProvider
這樣的東西,使用$new
方法創建范圍,每個范圍都可以通過繼承訪問此方法(准確地委托)。 當您在控制器中請求$scope
時, $scope
是使用它的父$scope
$new
方法動態創建的,並以該名稱注入。 要為不同的名稱調用上述行為,您必須使用角度內部。
我能夠在我的應用程序的配置部分解決它。 在我的控制器中,我現在可以使用$scope
或view
,它們具有相同的含義。
$routeProvider
.when('/Index', {
templateUrl: "/views/index.html",
controller: ['$scope', '$controller', function($scope, $controller){
$controller("IndexController", {$scope:$scope, view: $scope});
}]
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.