别名控制器中的AngularJS $ scope对象

时间:2015-04-03 00:27:44

标签: javascript angularjs

在不了解原因的细节的情况下,我需要在控制器中为$scope提供别名。而不是注入和装饰$scope我希望用户能够注入view并使其具有相同的效果。

根据我对角度的理解,$scope$scopeProvider创建,viewProvider是在角应用程序的配置时注册的工厂。我假设我需要注册一个$scopeProvider并将其设置为等于['$scope', function(view){...,但我没有幸运,我一直在努力。有什么想法吗?

仅供参考:我不是在寻找像['view', function(view){...这样的东西,理想的解决方案适用于$scope。视图对象的行为完全,如{{1}},双向绑定等。

3 个答案:

答案 0 :(得分:10)

如果您正在教AngularJS,您实际上应该避免使用$scope并使用controller as syntax - See this awesome Angular Style Guide by John Papa for explanation

那也可以解决你的问题:)

答案 1 :(得分:2)

没有$scopeProvider这样的东西,使用$new方法创建范围,每个范围都可以通过继承访问此方法(准确地委托)。当您在控制器中请求$scope时,$scope将使用其父$scope $new方法动态创建,并以该名称注入。要为不同的名称调用上述行为,您必须使用角度内部。

答案 2 :(得分:0)

我能够在我的应用程序的配置部分解决它。在我的控制器中,现在我可以使用$scopeview,它们具有相同的含义。

   $routeProvider
    .when('/Index', {
        templateUrl: "/views/index.html",
        controller: ['$scope', '$controller', function($scope, $controller){
            $controller("IndexController", {$scope:$scope, view: $scope});
        }]
    })