簡體   English   中英

別名控制器中的AngularJS $ scope對象

[英]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方法動態創建的,並以該名稱注入。 要為不同的名稱調用上述行為,您必須使用角度內部。

我能夠在我的應用程序的配置部分解決它。 在我的控制器中,我現在可以使用$scopeview ,它們具有相同的含義。

   $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.

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